我正在尝试编写一个正则表达式来匹配三组,而我在三组中我希望一组是可选的。
正则表达式:
^[A-Z]{1,4}-[0-9]{1,4}:\s(\w*)\((\w*)\)*:\s(.*)$
它符合以下条件:
AAAA-1235: fix(test): message
但是,不在下面。
AAAA-1235: fix: message
如何修改正则表达式,使其与两个组都匹配。万一第一个消息得到三个小组。
如果有第二条消息,则只有两组
消息
答案 0 :(得分:0)
您不是将组设为可选,只是将组末尾的)
设为可选。您需要将()
放在整个组中,而不仅仅是括号中的部分。
此外,要使某些内容可选,请使用?
。 *
表示允许任意数量的重复,包括0。
^[A-Z]{1,4}-[0-9]{1,4}:\s(\w*)(\(\w*\))?:\s(.*)$