【问题标题】:regex to match optional group正则表达式匹配可选组
【发布时间】:2020-06-24 02:11:14
【问题描述】:

我正在尝试编写一个正则表达式来匹配三个组,并且在三个组中我希望一个组是可选的。

正则表达式:

^[A-Z]{1,4}-[0-9]{1,4}:\s(\w*)\((\w*)\)*:\s(.*)$

符合以下条件:

AAAA-1235: fix(test): message 

但是,不在下面。

AAAA-1235: fix: message 

如何修改正则表达式使其匹配两个组。如果第一条消息得到三个组。

  • 修复
  • 测试
  • 留言

如果是第二条消息,只有两组

  • 修复
  • 留言

留言

【问题讨论】:

  • 您使用什么语言/工具?来自regex tag info:“由于正则表达式尚未完全标准化,所有带有此标签的问题还应包含一个指定适用的编程语言或工具的标签。”

标签: regex regex-group


【解决方案1】:

您没有将组设为可选,您只是将组末尾的) 设为可选。您需要将() 放在整个组中,而不仅仅是括号内的部分。

另外,要使某些内容可选,请使用?* 表示允许任意次数的重复,包括 0。

^[A-Z]{1,4}-[0-9]{1,4}:\s(\w*)(\(\w*\))?:\s(.*)$

DEMO

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多