正则表达式空格不包括字符串

时间:2017-08-08 12:35:49

标签: php regex

我正在寻找一个匹配所有空格和换行符(\ s)但不匹配引号之间的空格(双精度或简单)的正则表达式。示例:

a = b //matches 2 whitespaces a*=*b
a = "my test" // matches 2 whitespaces too a*=*"my test" (ignoring all whitespaces , lines breaks,etc between quotes.)
a = "my test", a = b , c = "my another string " // matches 9 (excluding strings whitespace)

有任何帮助吗?

1 个答案:

答案 0 :(得分:0)

以下正则表达式应该可以正常工作:
?![^"]*"(?:[^"]*"[^"]*")*$)

演示here

请注意,正则表达式以空格开头,我没有使用\s,因此它只匹配空格而不是制表符或换行符。
正则表达式意味着匹配任何后面没有奇数引号的空格 另外,不要忘记使用m标志