正規表現
Regexを使うのがよさげです。
- 使い方はAPIドキュメントを見ればだいたいわかるかと。
- なお、古いScalaには含まれていないので注意。scala-2.7.0には入っておらず、scala-2.7.1.finalを落としてくると入ってました。
以下は簡単なサンプルです。
// 正規表現 var r = new Regex( "[A-Z]" ) // 正規表現にマッチするか評価する println( r.findFirstIn("Mii") != None ) // true println( r.findFirstIn("___") != None ) // false // マッチする文字列を置換 println( r.replaceAllIn( "MiiToraKuroShiro", "_" ) ) // _ii_ora_uro_hiro println( r.replaceFirstIn( "MiiToraKuroShiro", "_" ) ) // _iiToraKuroShiro // マッチした断片を順に取り出す r = new Regex( "([A-Z])([a-z]+)" ) r.findAllIn("MiiToraKuroShiro").matchData.foreach( i => { println( "-- " ) println( "matched : " + i.matched ) println( "group0 : " + i.group(0) ) println( "group1 : " + i.group(1) ) })
実行結果です。
true false _ii_ora_uro_hiro _iiToraKuroShiro -- matched : Mii group0 : M group1 : ii -- matched : Tora group0 : T group1 : ora -- matched : Kuro group0 : K group1 : uro -- matched : Shiro group0 : S group1 : hiro