Skip to end of metadata
Go to start of metadata

Groovyはネイティブで ~"パターン" 表記を使用した正規表現をサポートします。それは、与えられたパターン文字列からコンパイルされた Java Pattern オブジェクトを生成します。また、Groovyは =~ 演算子(Matcherを生成)と ==~ 演算子(Stringとそのパターンがマッチするかどうかのboolean値を返す)もサポートします。

Matcherオブジェクトはグループを持つことがあるため、matcher[index]がマッチした文字列もしくはマッチしたグループの文字列リストとなります。


Matcherは *find()*メソッドをコールすることで強制的にboolean値となるため、(if文、while文ほかの)条件節として現れたとき、 =~ 演算子はPerlの =~ 演算子の単純な使用法と同じ働きをします。
”より厳密に働くように見える” ==~ 演算子は、対象文字列全体との正確なマッチを要求します。Matcherではなく、Booleanを返します。

正規表現のサポートは、Javaから取り込まれています。Javaの正規表現言語とAPIはここにドキュメントされています。

他の例


目的: 各行の始めにある単語の語頭を大文字にします:


目的: 文字列中の全ての単語の語頭を大文字にします:


単語の残りの部分を小文字にするために.toLowerCase() を追加します。

つまづきやすいところ


String.replaceAll() の後方参照の使い方では、GStringは期待通りに動作しません


これは次のようなエラーとなります。

... illegal string body character after dollar sign:

solution: either escape a literal dollar sign "\$5" or bracket the value expression "${5}" @ line ...


解決法:

置換文字列を ' か / で括るようにします。

  • No labels