Regex 要匹配可选组的正则表达式

Regex 要匹配可选组的正则表达式,regex,regex-group,Regex,Regex Group,我正在尝试编写一个正则表达式来匹配三个组,在三个组中,我希望有一个组是可选的 Regex: ^[A-Z]{1,4}-[0-9]{1,4}:\s(\w*)\((\w*)\)*:\s(.*)$ AAAA-1235: fix(test): message 它与以下内容匹配: ^[A-Z]{1,4}-[0-9]{1,4}:\s(\w*)\((\w*)\)*:\s(.*)$ AAAA-1235: fix(test): message 但是,不在下面 AAAA-1235: fix: messag

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

Regex:

^[A-Z]{1,4}-[0-9]{1,4}:\s(\w*)\((\w*)\)*:\s(.*)$
AAAA-1235: fix(test): message 
它与以下内容匹配:

^[A-Z]{1,4}-[0-9]{1,4}:\s(\w*)\((\w*)\)*:\s(.*)$
AAAA-1235: fix(test): message 
但是,不在下面

AAAA-1235: fix: message 
如何修改正则表达式,使其与两个组匹配。以防第一条信息被发送到三个组

  • 修理
  • 试验
  • 信息
如果是第二条消息,则只有两组

  • 修理
  • 信息

消息

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

另外,要使某些内容可选,请使用
<代码>*表示允许任意数量的重复,包括0

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

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

另外,要使某些内容可选,请使用
<代码>*表示允许任意数量的重复,包括0

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

您使用的是什么语言/工具?来自:“由于正则表达式没有完全标准化,因此带有此标记的所有问题还应包括一个标记,指定适用的编程语言或工具。”您使用的是哪种语言/工具?来自:“由于正则表达式不是完全标准化的,因此带有此标记的所有问题还应包括一个指定适用编程语言或工具的标记。”