我正在使用this similar question中找到的以下RegEx:
/[^\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]*"
确实在我的情况下给出了结果,但由于它在单引号上失败,所以没有给出所需的结果。
答案 0 :(得分:4)
.NET中的正则表达式不使用/
分隔符,因此:
MatchCollection conditions = Regex.Matches(strCondition, @"[^\s""]+|""[^""]*""");