2009-08-26 9 views
15

java regexを使用して一連の単語を無効にしたいと思います。java regex経由で一連の単語を否定する

いいえ、私は否定したいと思います。cvssvnnvsmvc私は^[(svn|cvs|nvs|mvc)]正規表現を書いた。

どのように動作していないようです。

+1

可能な重複:http://stackoverflow.com/questions/42990/regex-to-match-against-something-that-is-not-a-specific-substring – finnw

+2

参照:http://stackoverflow.com/questions/406230/regular-expression-to-match-string-not-containing-a-word – finnw

+1

...およびhttp://stackoverflow.com/questions/717644/正規表現はそれほど含まれていない特定の文字列 – finnw

答えて

4

これは簡単ではありません。あなたが単語を否定するには、それを文字に分割して各文字を否定する必要があります。

ので、あなたが本当に醜い正規表現に変わりますフィルタリングしたいだから何

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

を記述する必要が

/svn/ 

を否定し、私はそれが、この正規表現を使用するには良いアイデアだと思うする

/svn|cvs|nvs|mvc/ 

あなたの文字列をテストするときは、結果を否定するだけです。

JSでは、これは、より少ないもののようになります。

!/svn|cvs|nvs|mvc/.test("this is your test string"); 
+0

文字列の先頭の^と最後の$と一致しないため、おそらく正しくありません。 – pvoosten

+0

文字列の任意の位置の単語を検索しています。あなたが全体の単語だけを一致させたいならば、最初は^を、最後は$を使ってトリックを行います。 – RaYell

2

あなたの正規表現は間違っています。角括弧の間には、文字の入力を要求したり無視したりすることができます。 ^(svn|cvs|nvs|mvc)$が見つからない場合は、問題ありません。

+0

実際には役に立たないのは純粋に正規表現ではないからです。コードを変更するオプションが必要ない場合、QAの問題は解決しません。 – Alex

関連する問題