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