C# 需要已找到两个子字符串或其他两个子字符串的正则表达式

C# 需要已找到两个子字符串或其他两个子字符串的正则表达式,c#,regex,c#-4.0,C#,Regex,C# 4.0,我只需要一个正则表达式在C#.NET上运行,它将 (ABC | DEF)和(计算机|咨询)都作为子字符串,或者不包含字符,或者以任何顺序包含任意数量的字符 anyNumberOrNoCharacters ABC anyNumberOrNoCharacters COMPUTER anyNumberOrNoCharacters anyNumberOrNoCharacters COMPUTER anyNumberOrNoCharacters ABC anyNumberOrNoCharacters 或

我只需要一个正则表达式在C#.NET上运行,它将 (ABC | DEF)和(计算机|咨询)都作为子字符串,或者不包含字符,或者以任何顺序包含任意数量的字符

anyNumberOrNoCharacters ABC anyNumberOrNoCharacters COMPUTER anyNumberOrNoCharacters
anyNumberOrNoCharacters COMPUTER anyNumberOrNoCharacters ABC anyNumberOrNoCharacters

我可以用这个找到第一个

(?>ABC|DEF)
<>但是我不知道如何把它们中的两个放在一个语句中,并提出一个要求两者都被认为是匹配的< /P>
更新以更好地描述我正在寻找的内容

以下是不被视为匹配的内容

1) asdf ABC asdf DEF asdf(因为它没有计算机或咨询) 2) asdf计算机asdf咨询asdf(因为它没有ABC或DEF) 3) asdf ABCDEF asdf(因为它没有计算机或咨询) 4) ASDF计算机咨询ASDF(因为它没有ABC或DEF) 5) asdf GHI asdf(因为它没有ABC或DEF,也因为它没有计算机或咨询)

这是一场比赛

6) asda ABC asdf计算机asdf 7) asda ABC计算机 8) asdf计算机asda ABC asdf 9) ASDF计算机ABCASDFASDF

10) asda DEF asdf计算机asdf 11) 阿斯达电脑 12) asdf计算机asda DEF asdf 13) ASDF计算机DEFASDFASDF

14) asda DEF asdf咨询asdf 15) 阿斯达咨询公司 16) asdf咨询asda DEF asdf 17) asdfCONSULTINGDEFasdfasdf

18) asda ABC asdf咨询asdf 19) asda ABCCONSULTING 20) asdf咨询asda ABC asdf 21)ASDF咨询ABCASDFASDF

<>实际上,它需要两个字符集的任何子串,但是必须找到这两个集合的两个集合,以便考虑匹配< < /p>的任何事物。
另外,我正在寻找一种可以在.net framework c中使用的格式的正则表达式,这种语法-与.net c相比,perl和javascript的语法似乎有所不同。

这就是您想要的吗

(?:\bABC\b|\bDEF\b)|(?:\bCOMPUTER\b|\bCONSULTING\b)

要断言字符串中存在两个匹配项,请尝试以下操作:

/^(?=.*(>ABC|DEF))(?=.*(>COMPUTER|CONSULTING))+/
表达式说明:

  • ^
    断言字符串开头的位置
  • (?=.*(>ABC|DEF))
    断言字符串中存在“ABC”或“DEF”。没有回溯
  • (?=.*(>COMPUTER | CONSULTING))
    断言字符串中存在“COMPUTER”或“CONSULTING”。没有回溯
  • +
    既然我们的短语出现了,这个字符串就有效了。继续并使用
    +
    匹配整个字符串
这里有一个

阅读更多:


你是说这个吗?为了更好地描述我要找的东西,这里有一个不符合ABC DEF的东西(因为它没有计算机或咨询)计算机咨询(因为它没有ABC或DEF)如果字符串是COMPUTERCONSULTING,Ghitis没有找到匹配项-抱歉,如果我的问题不清楚,但unihedron的答案对methis很有效。当我需要ABC和计算机时,Ghitis也认为ABC是匹配项。谢谢你-我将它调整为这个,它就像我正在寻找的一样工作允许文本包含这两个单词中的不止一个,并且可以任意顺序(?=.*(>ABC|DEF))(?=.*(>COMPUTER|CONSULTING))
(?:\bABC\b|\bDEF\b)|(?:\bCOMPUTER\b|\bCONSULTING\b)