NOBのArduino日記!

NOBのArduino日記!

趣味は車・バイク・自転車・ラジコン・電子工作です。

Processing(matchの使い方)

match
 Processingにおけるmatchは、テキストに正規表現を適用し、一致するグループ(カッコ内にある要素)を文字列配列として返すために使用されます。
 一致するものがない場合、null値が返されます。
 正規表現にグループが指定されていないが、シーケンスが一致する場合は、長さ1の配列(配列の最初の要素として一致するテキスト)が返されます。

 関数を使用するには、まず結果がnullかどうかを確認します。
 結果がnullの場合、シーケンスはまったく一致しません。
 シーケンスが一致した場合、配列が返されます。

 正規表現にグループ(カッコの集合で指定)がある場合、それぞれの内容が配列に返されます。
 正規表現一致の要素[0]は一致する文字列全体を返し、一致グループは要素[1](最初のグループは[1]、2番目の[2]など)から開始します。

 この構文は、JavaのPatternクラスのリファレンスにあります。
 正規表現の構文については、トピックに関するJavaチュートリアルを読んでください。

 Processingで使用するmatchの使い方は以下の通りです。
イメージ 4
   
String s = "Inside a tag, you will find <tag>content</tag>.";
String[] m = match(s, "<tag>(.*?)</tag>");
println("Found &apos;" + m[1] + "&apos; inside the tag.");
// コンソールに出力します:
//  "タグ内に &apos;コンテンツ&apos;が見つかりました。"
String s1 = "Have you ever heard of a thing called fluoridation. "; 
       s1 += "Fluoridation of water?";
String s2 = "Uh? Yes, I-I have heard of that, Jack, yes. Yes.";
 
String[] m1 = match(s1, "fluoridation");
if (m1 != null) {  // nullでない場合、一致が見つかりました
  // これは一致が見つかったのでコンソールに出力されます。
  println("Found a match in &apos;" + s1 + "&apos;");  
else {
  println("No match found in &apos;" + s1 + "&apos;");
}
 
String[] m2 = match(s2, "fluoridation");
if (m2 != null) {
  println("Found a match in &apos;" + s2 + "&apos;");
else {
  // これは一致するものが見つからないため、コンソールに出力されます。
  println("No match found in &apos;" + s2 + "&apos;");  
}
イメージ 3
図1:プログラムの内容

イメージ 1
図2:プログラム実行結果

matchの構文
 match(str, regexp)

matchのパラメータ
 str :検索対象の文字列(String)
 regexp :マッチングに使用する正規表現(String)

matchの戻り値
 String[]

イメージ 1イメージ 3
励みになりますのでよければクリック下さい(^o^)/



この商品は、Amazon.co.jp が販売、発送します。 ギフトラッピングを利用できます。