このページは当サイトをMovable Typeで運営していた頃の記事のログです.
表記のcategoryやコメント,トラックバックは機能しておりません.
その他,サイト内リンクや画像のパスが間違っている部分がある可能性があります.
ご了承ください.
最近研究がろくに進んでいない中,本日唯一のレベルの低い収穫をメモ.
StringクラスのreplaceAllとかmatchesメソッドにて,
正規表現で文字"["や"]"(大括弧)とマッチさせたい場合,
そのまま
str.matches("[")
などとすると
java.util.regex.PatternSyntaxException:
Unclosed character class near index 0 [
^
というエラーが出てしまうのは
str.matches("\\[")
とバックスラッシュ×2でエスケープしてやれば解決する模様
まぁそれだけ
Posted by TF22 at 2005年06月03日 03:00 | TrackBackたしか本来のエスケープ文字である\はjavaでは
//で定義されてるからだっけ?
まったくわかりづらい世界ですたい.
Posted by: YUKI at 2005年06月03日 04:06ん~ぶっちゃけ俺もその辺はよく分からないです・・.
Java以外の言語の正規表現の事情とか全く知らないし(笑)
まぁ多分,"["と"]"は正規表現で集合?(括弧[]内の任意の文字)を
表すのに使用されるのでエスケープが必要 → "\["
+
"\"自身を表すのに"\"でさらにエスケープ
↓
"\\["
なんだろうね.
でも"\["だけで表現させてくれてもよさそうな気もするなー・・.
ん~分かりにくい