我编写了一个正则表达式来匹配以下模式:
任何字符,后跟连字符
,后跟数字
,后跟空格
,后跟可选的不区分大小写的关键字
由 space
后跟任何 char
。
例如,
TXT-234 #comment anychars
TXT-234 anychars
我写的正则表达式如下:
(?<issueKey>^((\\s*[a-zA-Z]+-\\d+)\\s+)+)((?i)?<keyWord>#comment)?\\s+(?<comment>.*)
但是上面的内容并没有捕获“#comment”的零出现,即使我已经指定了“?”为正则表达式。上例中的情况 2 总是失败,而情况 1 成功。
我做错了什么?
最佳答案
#comment 与#keyword 不匹配。这就是为什么你没有尝试比赛的原因。这个应该可以工作:
([a-zA-Z]*-\\d*\\s(((?i)#comment|#transition|#keyword)+\\s)?[a-zA-Z]*)
关于java - Java 中匹配某个单词零次或一次出现的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35844053/