我有两种短信 - 两者都有一个穿制服的消息代码,但可能会有第二个匹配在'我需要提取的字符中,如果它在那里。
M0123 示例' \ textratext '包含两个预期匹配。
M0321 没有两场比赛的示例
匹配#1并捕获两个组但与#2不匹配:
^(?<code>M\d+).*(?<extra>'.*').*
匹配#1&amp; #2但是从未捕获过额外的组:
^(?<code>M\d+).*(?<extra>'.*')?.*
答案 0 :(得分:0)
否定的角色类应该可以帮到你,比如
^(?<code>M\d+)[^']*(?:(?<extra>'.*').*)?
将第一个.*
转换为[^']*
会使其与第一个样本的第一个引号和第二个样本的整个字符串匹配。
注意:
(?<extra>'[^']*')