C# 排除正则表达式组值
我有下一个正则表达式C# 排除正则表达式组值,c#,regex,C#,Regex,我有下一个正则表达式 \w*\|(?<PORT>\w*)\|(?<NAME>\w*)\| \w*\\\\\\(?\w*)\\\\\\(?\w*)\| 我想得到任何匹配,除非端口等于220 例如: 0 | 220 |凯美瑞|-必须排除匹配项 0 | 112 | Polo |-比赛可以使用消极前瞻: \w*\|(?!220\|)(?<PORT>\w*)\|(?<NAME>\w*)\| ^^^^^^^^^ \w*\\\\\(?!220\)
\w*\|(?<PORT>\w*)\|(?<NAME>\w*)\|
\w*\\\\\\(?\w*)\\\\\\(?\w*)\|
我想得到任何匹配,除非端口
等于220
例如:
0 | 220 |凯美瑞|
-必须排除匹配项
0 | 112 | Polo |
-比赛可以使用消极前瞻:
\w*\|(?!220\|)(?<PORT>\w*)\|(?<NAME>\w*)\|
^^^^^^^^^
\w*\\\\\(?!220\)(?\w*)\\\\\(?\w*)\|
^^^^^^^^^
使用负前瞻:
\w*\|(?!220\|)(?<PORT>\w*)\|(?<NAME>\w*)\|
^^^^^^^^^
\w*\\\\\(?!220\)(?\w*)\\\\\(?\w*)\|
^^^^^^^^^
这不符合我的期望。此正则表达式返回匹配,但端口组为空。如果您的正则表达式中有一个额外的(
,它应该是:\w*\\\\\\(?!220\\\\)(?\w*)\\\\\\\\(?\w*)\|
@AlexFilipovici此正则表达式返回匹配,但在组中排除禁止的值。我根本不想获得匹配,如果字符串具有禁止的值,则它只返回一个匹配。证据如下:。这与我的预期不符。此正则表达式返回匹配,但端口组为空。我将完全排除匹配。您有额外的(
在您的正则表达式中,它应该是:\w*\\\\\\\(?!220\\\\)(?\w*)\\\\\\\\\\\\\\(?\w*)\\\\\\\\\\\\
@AlexFilipovici此正则表达式返回匹配,但排除组中的禁止值。我根本不想获得匹配,如果字符串有禁止值,它只返回一个匹配。这是证据:。