21

Java正規表現を使用して一連の単語を否定したいと思います。

cvssvnnvs、を否定したいとしmvcます。である正規表現を書きました^[(svn|cvs|nvs|mvc)]

それが機能していないように見える方法もあります。

4

3 に答える 3

49

これを試して:

^(?!.*(svn|cvs|nvs|mvc)).*$

svn、cvs、nvs、mvc のいずれも含まれていない場合、これはテキストと一致します。

これは同様の質問です:特定の文字列を含まない文字列に一致する C# 正規表現?

于 2009-08-26T10:37:37.120 に答える
2

それほど単純ではありません。単語を否定したい場合は、単語を文字に分割し、各文字を否定する必要があります。

だから否定する

/svn/

あなたは書く必要があります

/[^s][^v][^n]/

したがって、除外したいものは本当に醜い正規表現に変わり、この正規表現を使用する方が良いと思います

/svn|cvs|nvs|mvc/

それに対して文字列をテストするときは、結果を否定するだけです。

JS では、これはそれほど似ていません。

!/svn|cvs|nvs|mvc/.test("this is your test string");
于 2009-08-26T09:56:00.963 に答える
2

あなたの正規表現は間違っています。角括弧の間には、必須または無視する文字を入れることができます。見つからなくても^(svn|cvs|nvs|mvc)$大丈夫です。

于 2009-08-26T09:56:25.957 に答える