具有逻辑与非功能的正则表达式

Nic*_*ick 1 c# regex

我想匹配所有包含catdog不包含的字符串(不是单词)catdog

基本上,字符串逻辑等效于:

string s;
(s.contains('cat') || s.contains('dog')) && !s.contains('catdog')
Run Code Online (Sandbox Code Playgroud)

测试值:

cat
dog
catdog
catsAreSoft
IHavedogs
Run Code Online (Sandbox Code Playgroud)

正则表达式(实际上不起作用):

(cat)|(dog)|^(?!catdog)
Run Code Online (Sandbox Code Playgroud)

匹配值

cat
dog
catsAreSoft
IHavedogs
Run Code Online (Sandbox Code Playgroud)

Tim*_*sen 5

只需使用以下替代方法进行搜索:

\b(?:cat|dog)\b
Run Code Online (Sandbox Code Playgroud)

这将匹配文字catdog,但仅作为独立词匹配。