FULL Tablog : 過去ログ

このページは当サイトをMovable Typeで運営していた頃の記事のログです.
表記のcategoryやコメント,トラックバックは機能しておりません.
その他,サイト内リンクや画像のパスが間違っている部分がある可能性があります.
ご了承ください.

2005年06月03日

Java文字列メモ
[ 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
Comments

たしか本来のエスケープ文字である\はjavaでは
//で定義されてるからだっけ?

まったくわかりづらい世界ですたい.

Posted by: YUKI at 2005年06月03日 04:06

ん~ぶっちゃけ俺もその辺はよく分からないです・・.
Java以外の言語の正規表現の事情とか全く知らないし(笑)

まぁ多分,"["と"]"は正規表現で集合?(括弧[]内の任意の文字)を
表すのに使用されるのでエスケープが必要 → "\["
 +
"\"自身を表すのに"\"でさらにエスケープ
 ↓
"\\["
なんだろうね.

でも"\["だけで表現させてくれてもよさそうな気もするなー・・.
ん~分かりにくい

Posted by: TF22 at 2005年06月04日 03:42