1

我正在使用在这个类似问题中找到的以下正则表达式: /[^\s"]+|"[^"]*"/g

我想用空格分割字符串,除非字符串用双引号引起来。引号必须包含在结果中。

这是我的 C# 代码:

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

conditions.Count 始终为零!当我在http://refiddle.com/测试正则表达式时,它可以工作!

示例输入:

"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]*"在我的情况下确实给出了结果,但没有给出预期的结果,因为它在单引号上失败。

4

1 回答 1

4

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

MatchCollection conditions = Regex.Matches(strCondition, @"[^\s""]+|""[^""]*"""); 
于 2012-09-18T12:57:38.660 回答