java - 带有空格的正则表达式

标签 java regex whitespace

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

act=MATCHME
act=Match me too 

我有以下正则表达式来匹配其中之一,但不能匹配两者。这是我的努力:

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

有没有办法可以用 OR 将两者结合起来,或者我可能看错了?

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

最佳答案

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

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

请参阅regex demo

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

如果您需要捕获 act= 之后的 2 个单词的子字符串,您可以进一步对模式进行分割。

关于java - 带有空格的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42810712/

相关文章:

java - hibernate findbyid 导致更新?

javascript - 想要对我的 RegEx(正则表达式)进行更多分类

java - ffmpeg命令不适用于Android中目录路径的空白

java - 出于 Character.isWhitespace 的目的,Java 是否将 'normal' 空间视为空白?

r - 如何在R中创建不同大小的空白向量

java - 在 spring boot actuator 健康检查 API 中启用日志记录

java - 在 build.properties 中找不到 key.store 和 key.alias 属性

java - 在 Spring Hibernate 中映射子类

javascript - 正则表达式查找第一个左括号和最后一个右括号以在 JS 中拆分

mysql - “括号不平衡”正则表达式错误继续发生-我无法确定失败的方式