【发布时间】:2013-11-19 09:35:52
【问题描述】:
我正在尝试在必需组中捕获可选组。到目前为止,这是我的正则表达式:
BEGIN
(?<body>
(?<A>.*?) # in my regex just .*?
(?<B>START.*?STOP)?
(?<C>.*?) # in my regex just .*?
)
END
输入:
junk1 BEGIN junk2 START content STOP junk3 END junk4
我明白了:
match: 'BEGIN junk2 START content STOP junk3 END' # ok
group 'body': ' junk2 START content STOP junk3 ' # ok
group 'A': '' # expected: ' junk2 '
group 'B': not found # expected: 'START content STOP'
group 'C': ' junk2 START content STOP junk3 ' # expected: ' junk3 '
A 组和 C 组仅供参考
为什么即使有正确的数据,B组也不匹配,如果B组不是可选的,我会得到预期的结果?
【问题讨论】:
-
你的意思是在
(?<B>START.*?END)?中写STOP而不是END,对吧?
标签: c# regex optional regex-group