当字符串没有被引号包围时,使用空格分割字符串的RegEx在refiddle中有效,但在C#中无效

v440hwme  于 2023-05-08  发布在  C#
关注(0)|答案(1)|浏览(140)

我使用的是在this similar question中找到的以下RegEx:/[^\s"]+|"[^"]*"/g
我想用空格分隔字符串,除非字符串用双引号引起来。结果必须包含引号。
这是我的C#代码:

MatchCollection conditions = Regex.Matches(strCondition, @"/[^\s""]+|""[^""]*""/g");

条件。计数始终为零!当我在线测试正则表达式时,它工作正常!
输入示例:

"0" MATCHES NOCASE "Den Bosch"  OR "0" MATCHES NOCASE "'s Hertogenbosch"

"0" MATCHES "1" AND "1" MATCHES "2" AND "2" MATCHES "3" AND "3" MATCHES "4" AND "4" MATCHES "5"

我做错了什么?我浪费了几个小时,再也没有线索了。
在我的例子中,(?<=")\w[\w\s]*(?=")|\w+|"[\w\s]*"确实给予了结果,但没有给出期望的结果,因为它在单引号上失败了。

jqjz2hbq

jqjz2hbq1#

.NET中的正则表达式不使用/分隔符,因此:

MatchCollection conditions = Regex.Matches(strCondition, @"[^\s""]+|""[^""]*""");

相关问题