正则表达式与空白

时间:2017-03-15 13:07:20

标签: java regex whitespace

我尝试编写一个正则表达式来匹配以下内容:

act=MATCHME
act=Match me too 

我有以下正则表达式匹配任何一个但不是两个。这是我的努力:

matches MATCHME: act=(\w+)
matches Match me too: (\w+\s\w+\s\w+)

无论如何可以将两者合并为OR,或者我可能会看错了吗?

我正在使用JAVA正则表达式引擎。

3 个答案:

答案 0 :(得分:2)

您可以使用可选的非捕获组:

act=(\w+(?:\s+\w+\s+\w+)?)
        ^^^^^^^^^^^^^^^^^

请参阅regex demo

?匹配量化子模式的1或0次出现。当它应用于分组构造时,量化应用于整个模式序列,因此(?:\s+\w+\s+\w+)?匹配1或1个空格,1 +个字符,1 +个空格的1或0个序列再加上1个字的字符。

如果您需要在act=之后捕获2个字的子串,则可以进一步细分该模式。

答案 1 :(得分:0)

当然,您知道如何通过alternation撰写正则表达式。

答案 2 :(得分:0)

这个正则表达式可以帮助你

^[a-zA-Z ]*$