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

Regex 正则表达式,一切直到一个模式,regex,expression,Regex,Expression,我想写一个正则表达式,它根据特定的模式分组。例如,对于字符串: "File=ZZZZZZZZZZZZZZ QQQQQQQQQQ.txt size=ten check=true test=true" 我希望小组: File=ZZZZZZZZZZZZZZ QQQQQQQQQQ.txt size=ten check=true test=true 通常我可以只查找空格,但如果我的文件名中有空格,那么这就不起作用了。因此,我需要匹配所有内容,直到我命中任何字符加上=。您可以通过[](?=\w+=)进行

我想写一个正则表达式,它根据特定的模式分组。例如,对于字符串:

"File=ZZZZZZZZZZZZZZ QQQQQQQQQQ.txt size=ten check=true test=true"
我希望小组:

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

通常我可以只查找空格,但如果我的文件名中有空格,那么这就不起作用了。因此,我需要匹配所有内容,直到我命中任何字符加上=。

您可以通过
[](?=\w+=)
进行拆分。括号中的内容是一个“先行断言”,只有在后面的内容看起来像参数时,才会匹配空格

如果您打算进行匹配而不是拆分,
(?:[^]|(?!\w+=)+
应该可以工作。
(?!…)
部分是一个否定的先行断言,因此只有在后面的内容看起来不像参数时,空格才会匹配

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


(另外:我之所以使用
[]
,是因为Markdown不喜欢内联代码中的前导空格。您可以在那里使用空格(不带括号),或者
\s
如果您想允许任何空格字符分隔参数。)

嗨,我可能应该提到我使用的是Java,我刚刚在下面的网站上尝试过,但没有任何效果?是的。这个图案不匹配;它是用来分裂的。像
String[]pieces=yourString.split((?=\w+=))一样使用它。如果匹配,它将只匹配空格,这有点不太有用。刚刚编辑以包含一个应可用于匹配的表达式。