我希望编写一个在特定模式上分组的正则表达式。例如,字符串:
"File=ZZZZZZZZZZZZZZ QQQQQQQQQQ.txt size=ten check=true test=true"
我想要小组:
File=ZZZZZZZZZZZZZZ QQQQQQQQQQ.txt
size=ten
check=true
test=true
通常情况下,我可以查找空格,但如果我的文件名中有空格,那么这不起作用。所以我需要匹配所有内容,直到我点击任何字符加上=。
答案 0 :(得分:2)
您可以按[ ](?=\w+=)
拆分。括号中的内容是“前瞻断言”,只有在跟随它的任何内容看起来像参数时才匹配空格。
如果您打算进行匹配而不是拆分,(?:[^ ]| (?!\w+=))+
应该有效。 (?!...)
部分是否定前瞻断言,因此只有在后不看起来像一个参数时,该空格才会匹配。
注意,并非所有正则表达式引擎都支持超前断言。大多数人都这样做,特别是PCRE风格的......但请检查你的正则表达式引擎的文档以获得正确的语法。
(另外:我正在使用[ ]
,因为Markdown讨厌内联代码中的前导空格。你可以在那里使用一个空格(没有括号),或\s
如果你想允许任何whitespace char分隔params。)