正则表达式,直到一个模式的一切

时间:2013-03-25 17:02:56

标签: regex expression

我希望编写一个在特定模式上分组的正则表达式。例如,字符串:

"File=ZZZZZZZZZZZZZZ QQQQQQQQQQ.txt size=ten check=true test=true"

我想要小组:

File=ZZZZZZZZZZZZZZ QQQQQQQQQQ.txt
size=ten
check=true
test=true

通常情况下,我可以查找空格,但如果我的文件名中有空格,那么这不起作用。所以我需要匹配所有内容,直到我点击任何字符加上=。

1 个答案:

答案 0 :(得分:2)

您可以按[ ](?=\w+=)拆分。括号中的内容是“前瞻断言”,只有在跟随它的任何内容看起来像参数时才匹配空格。

如果您打算进行匹配而不是拆分,(?:[^ ]| (?!\w+=))+应该有效。 (?!...)部分是否定前瞻断言,因此只有在看起来像一个参数时,该空格才会匹配。

注意,并非所有正则表达式引擎都支持超前断言。大多数人都这样做,特别是PCRE风格的......但请检查你的正则表达式引擎的文档以获得正确的语法。

(另外:我正在使用[ ],因为Markdown讨厌内联代码中的前导空格。你可以在那里使用一个空格(没有括号),或\s如果你想允许任何whitespace char分隔params。)