正则表达式XOR有多个单词

时间:2013-10-31 09:20:02

标签: .net regex xor

我想知道是否有可能有一个正则表达式来检查字符串中是否存在0或1的单词数组。具有多个条目的异或(...)

字符串可以包含0或仅包含1的单词:

  • 上午
  • 晚间

以下句子应该给出以下结果:

  1. 这是美好的一天=>匹配(单词中的0)
  2. 今天早上好吗? =>匹配(1个单词)
  3. 今天早上,这是夜晚! =>不匹配(1个单词)
  4. 这个夜晚,我们将有一个美好的早晨=>不匹配(2个或更多的单词)
  5. 感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

修改

纯正则表达式解决方案应该是:

string words = string.Join("|", yourWordsArray);
string regex = "^(?!.*\b(" + words + ")\b.*\b(" + words + ")\b).*\b(" + words + ")\b.*$";

<强> /修改

您要问的是“查找每个字符串<1匹配”。在.Net中这很容易,因为你可以有这样的结构:

return !(Regex.Matches("your text", "your regex").Count > 1)

你的正则表达式会是这样的:`

string regex = string.Join("|", yourWordsArray);

不是所有代码中最漂亮的,但可能更糟糕