1

ハイフンを含まない単語を許可する正規表現が必要です。たとえば、文字列「非単語文」では、「文」のみに一致する必要があります。私が書いた:

 "\b(?!\w+[-]\w+)\w+" 

そしてそれは失敗します:

「文」だけでなく「単語」にもマッチします。

ハイフンを含む単語を無視するにはどうすればよいですか?

4

2 に答える 2

3

よし、これは PCRE (Perl-Compatible Regular Expression systems、つまりそれらのほとんどを意味する) の 1 つです。

(?<![-])\b[a-zA-Z]+\b(?![-])

あなたのためにそれを分解させてください:

(?<![-]): 否定後読み -- 「次に一致するものは、その直前のものを見てください。ハイフンの場合は、この一致を無視してください」

\b[a-zA-Z]+\b: 単語境界、単語、単語境界。私たちの「もの」。

(?![-]): 否定的な先読み -- 「一致したもの、その直後のものを見てください。ハイフンの場合は、この一致を無視してください」

これは、私のお気に入りのオンライン正規表現テスターである RegExr にあります。

于 2013-07-10T20:33:22.483 に答える
0

これはあなたのために働くでしょうか:

(?<=[^\s])[a-zA-Z]*(?=[$\s])
于 2013-07-10T20:24:17.403 に答える