●文字列カウント

文字列カウント

作者名:曜日

概要

文字列内にある特定の単語、文章の個数をカウントする。
検索範囲指定可能。

総文字数のカウント命令はありますが、文章内に文字列がいくつあるかカウントする命令は無かったと思うので
あればあったで便利かなと。
正規表現単置換を使ってカウントしているので
「きりん|キリン」等の様に指定すればひらがなカタカナ併せてのカウントも可能です。
(参考: 正規表現について - なでしこマニュアル - https://nadesi.com/doc/reference/function/2-1-regexp.htm)



解説

引数

全て文字列

TXT・・・検索を行なう元の文章
A・・・省略可 TXT内で範囲指定を行う場合に使用
B・・・省略可 TXT内で範囲指定を行う場合に使用
C・・・個数をカウントしたい単語(正規表現記述)

返り値

半角数値

//サンプルプログラム

A=『 25人の安否がわかっていない福岡県朝倉市では、9日も自衛隊や警察、
消防団などが約2千人態勢で捜索や救助を続けた。午前中、雨が一時強まり、孤立状態の住民の安否を
空から確認する予定だったヘリコプターの飛行が中止になった。 
 市東部の山間部にある同市杷木(はき)星丸。手作業で流木や土砂をかき出す捜索活動の様子を、
降りしきる雨の中、傘を差しながら、朝から見守る男性がいた。同市杷木久喜宮(くぐみや)の野上邦幸さん(36)。
母親の本河(ほんかわ)くに子さん(59)が一人暮らしをしていた戸建ての市営住宅が、本来あるはずの場所に、ない。
 「水と土砂だけだったらこれほどひどくなかったと思う。流木が家を跡形もなく、壊したんだと思う」』
//(引用元:http://www.asahi.com/articles/ASK7964FVK79TIPE031.html)
  
c1=(Aで『の』を文字列カウント)
c2=(Aで『福岡県』から『捜索活動の様子』までの『の』を文字列カウント)
c3=(Aで『福岡県』から『捜索活動の様子』までの『[あ-ん]』を文字列カウント)
 
「『の』の数・・・{c1}
『福岡県』~『捜索活動の様子』の間に使われた『の』の数・・・{c2}
『福岡県』から文末までの間に使われた『ひらがな』の数・・・{c3}」を表示

//本体

●文字列カウント(TXTで,{=?}Aから,{=?}Bまでの,Cを,)
	outとは数値
	out=0
	もしA!=『』ならば
		TXTからAまで切り取る
		TXT=A&TXT
	もしB!=『』ならば
		TXT=(TXTからBまで切り取る)&B
	1の間
		もし(TXTをCで正規表現マッチ)!=『』ならば
			TXT=TXTのCを『』に正規表現単置換
			out=out+1
		違えば
			outで戻る








例えばウェブスクレイピングツールを組んでいる時に
id等の目印の無い、538番目のリンクを要素クリックしたいとか言う状況に陥った場合、

ブラウザ部品の「a\537」をブラウザ要素クリック

等のように指定するしかないのですが
いちいちソース見ながら手探りで探すのはダルイので、この命令と組み合わせて、

txt=ブラウザ部品の『html\0』をブラウザHTML取得
stxt=『リンク名等目印に出来るテキスト(目当てのタグ、ないしはその直後にある文章等)』
count=txtでstxtまでの『<a .*?>』を文字列カウント
ブラウザ部品の「a\{count-1}」をブラウザ要素クリック

のような形にすると大規模なサイトでの移動処理を組むのが多少便利になります・・・。



名前:
コメント:


タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2017年08月06日 00:58
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。