【发布时间】:2014-09-23 14:56:11
【问题描述】:
我正在尝试匹配这些行:
X=1 a b c Y=5 a bb aa
X=2 aa ccc d
X=3 ccc Y=9 d ee ff
“Y=x”子字符串是可选的。它可能存在于一行中,也可能不存在。 我想在第 1 组中捕获 X=x,在可选第 2 组中捕获 Y=x。
我正在使用这个正则表达式:
^(X=[0-9]+?).+?(Y=[0-9]+?)?.+?$
整行都匹配,但我只捕获第一组。即使存在可选子字符串,也永远不会捕获第二组。问题是 X= 和 Y= 之间可能有很多不同的词(也有 '=' 字符)。
任何想法如何捕获可选的第 2 组?
【问题讨论】:
标签: regex optional capture regex-group