Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 谁能帮我做正则表达式检查?_C#_Regex - Fatal编程技术网

C# 谁能帮我做正则表达式检查?

C# 谁能帮我做正则表达式检查?,c#,regex,C#,Regex,我有一个字符串,想检查该字符串是否包含部分字符串。 例子: 检查字符串是否包含:PA或PB或POL或VBW 要检查的字符串1:COR、PA、NOT、VBW->check=True 要检查的字符串2:COR、PB、NOT、VW-PBM-BR-INVE-INV6->check=True 要检查的字符串3:COR,VW-PBM-BR-INVE-INV6->检查=False 我使用了Regex PA | PB | POL | VBW String1和String2有一个正确的检查 但是String3也给

我有一个字符串,想检查该字符串是否包含部分字符串。 例子: 检查字符串是否包含:PA或PB或POL或VBW

要检查的字符串1:COR、PA、NOT、VBW->check=True

要检查的字符串2:COR、PB、NOT、VW-PBM-BR-INVE-INV6->check=True

要检查的字符串3:COR,VW-PBM-BR-INVE-INV6->检查=False

我使用了Regex PA | PB | POL | VBW String1和String2有一个正确的检查 但是String3也给出Check=True

部分字符串PA或PB或POL或VBW始终介于a、逗号、字符串开头、字符串结尾或整个字符串之间。
部分字符串从来不是像VW-PBM-BR-INVE-INV6或POLIS这样的组合

我认为这应该满足您的要求

"(^|,)(PA|PB|POL|VBW)(,|$)"
它检查所需字符串前面的字符串或逗号的开头,以及后面的字符串或逗号的结尾

这意味着您的第三个示例将返回false,因为PB前面是-&后面是M-所以不匹配

看这里-

从最初的问题中,我假设您所需要的只是true/false检查是否有任何子字符串与您的组匹配-如果您希望捕获子字符串的所有匹配组-您可以使用lookahead/lookback断言

((?<=^)|(?<=,))(PA|PB|POL|VBW)((?=$)|(?=,))

请参见此处-

您可以使用word Bounders anchor尝试您的正则表达式:

(PA|PB|POL|VBW)\b

这似乎很有效,你能展示你的代码吗?你是否检查了组,这是你在捕获组时需要查看的。你是否想确保在开始和/或结束处有一个逗号,我可能无法理解这一点。thnx@đěxěŕ获取你的答案,但代码不起作用。没问题,因为其他答案对我有帮助。可能需要一个单词边界以及字符串的开头和结尾。Thnx是您的答案。这个代码对我来说没问题。只有当我有一个像这个M-PB-HOME这样的字符串时,检查也将为真。thnx@PaulF为您的答案。这个代码对我来说很好。只有当一行中有两个部分字符串POL,PB,PA时,第二部分才得到一个假检查。但那没问题