3

単語のグループに含まれていない単語に一致する正規表現が必要です。私はいくつかの提案を見つけたグーグルとスタックの質問をしました。しかし、それらはすべて、単語ではなく、文字のグループを照合することに関するものでした。だから私は自分で正規表現を書こうとしました。しかし、正しい正規表現が見つかりませんでした。これが私が今まで試した最後のものです:

(?:(?!office|blog).)+

私の言葉はoffice、そしてarticleです。このグループにない単語を入力したい。助けてください。

4

3 に答える 3

6

あなたの正規表現は次のようになるはずです:

Regex r = new Regex(@"\b(?!office|blog|article)\w+\b");
MatchCollection words = r.Matches("The office is closed, please visit our blog");

foreach(Match word in words)
{
   string legalWord = word.Groups[0].Value;
   ...
}

これは、「The」、「is」、「closed」、「please」、「visit」、および「our」を返します。

于 2013-01-03T19:57:22.647 に答える
0

この問題を自分で解決しようとしています。ここで私の答えを見つけました:http://www.regextester.com/15

正規表現: ^((?!badword).)*$

その意味:

  • ^$: 検索文字列全体 (先頭 (^) と末尾 ($)) のみに一致します。
  • ()*: 0 個以上の内容に一致。
  • (?!badword): 現在の文字の先を見て、「badword」全体が一致しないことを確認します。
  • .: 任意の 1 文字に一致します。

重要な部分は、これが一度に 1 文字だけに一致し、各文字を一致させた後、「badword」がすぐに続かないことを確認することです。

于 2017-03-28T14:34:52.080 に答える