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+=))一样使用它代码>。如果匹配,它将只匹配空格,这有点不太有用。刚刚编辑以包含一个应可用于匹配的表达式。