2011-10-18 1 views
8

キーの後にカンマがあるかキーが行末にある場合に一致するパターン(java regexp)が必要です。すなわちそれは、以下の両方に一致する必要がありますシンボルOR行末パターン

1. xxxkey,yyy 
2. xxxkey 

アイブ氏は[\\,$]パターンを試してみましたが、それは動作しません。

答えて

11

$文字クラス内では、その特別な意味が失われます。代わりに以下を使用します。

key(,|$) 

あなたがあなたの代わりに非キャプチャグループを使用することができ、カンマがあったかどうかを知る必要がない場合:

key(?:,|$) 
+0

どのように文字クラス内で特別な意味を持つ文字をエスケープするのでしょうか? – Oliver

+0

感謝します!!!!!! )) – shift66

+0

@Oliver:単純に '$'をエスケープすることではありません。それは文字ではなくアンカーなので、特別な意味を失うことなく、文字クラス*に入れることはできません。いずれにしても、Java正規表現の構文については、http://download.oracle.com/javase/1.4.2/docs/api/java/util/regex/Pattern.htmlを参照してください。 – NPE

1

...これを試してみてください
"xxxkey(?:,\\w*)?$" 

か -

"xxxkey(?:,.*)?$" 

か -

"xxxkey(?:,|$)" 

あなたのニーズに応じて

0

,それは文字ではありません、文字ではなく、$は特別です。

試してください。,?は、1つのカンマまたはカンマがないことを意味し、それに続いて$と表示されます。

1

はここで何が必要です:

.*key((,.*)|$) 
関連する問題