0

Javaで次の正規表現を使用して、パターンが文字列の先頭、文字列の末尾、または空白で囲まれているかどうかを調べていますが、機能していません。

これを行うと、\\Wmypattern\\W空白で囲まれたパターンが見つかります。

しかし、私がこれを行う場合、そう[^\\W]mypattern[\\W$]ではありません。後者の正規表現は、パターンが文字列の先頭、文字列の末尾に存在する場合、または文字列の先頭で開始するか、文字列の末尾で終了する場合に一致させるための私の試みです。

私は何が間違っているのですか?

4

2 に答える 2

2

使いたい

(^|\\W)mypattern(\\W|$)

これは、パターンの先頭にある非単語文字または文字列の先頭に一致、パターンの末尾にある非単語文字または文字列の末尾に一致します。

現在のパターンは、単語以外の文字([^\\W])の後にパターンが続き、その後に単語以外の文字またはリテラル文字$[\\W$])が続く単一の文字と一致します。

このページは、正規表現構文の良いリファレンスです。

于 2012-05-23T17:36:44.807 に答える
1

^$の外側を配置する必要があり[]ます。あなたは今それを逃れています。

指定する[\\W]mypattern[\\W]ことは、単語以外の文字で囲まれることを意味します。[\\s]空白文字を使用したいと思います。詳細については、正規表現を参照してください。

最初または最後に一致させたい場合は、次のようなことを行う必要があります。

^mypattern: beginning of the string
mypattern$: end of the string
于 2012-05-23T17:34:09.243 に答える