C# 需要已找到两个子字符串或其他两个子字符串的正则表达式
我只需要一个正则表达式在C#.NET上运行,它将 (ABC | DEF)和(计算机|咨询)都作为子字符串,或者不包含字符,或者以任何顺序包含任意数量的字符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 或
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))
既然我们的短语出现了,这个字符串就有效了。继续并使用+
匹配整个字符串+
(?:\bABC\b|\bDEF\b)|(?:\bCOMPUTER\b|\bCONSULTING\b)