有没有办法对匹配的元素进行分组但是在匹配的匹配组中没有出现匹配?例如,假设我有一个包含两行的字符串:
<td>text 1</td>
<td><a href=whatever>this is</a> text 2</td>
我要解析“text 1”和“this is text 2”。我现在正在做的是使用这种模式:
<td>(<a href=.+?>)?(.+?(</a>)?.+?)</td>
基本上对锚标签进行分组,这样我就可以让模式匹配零或一次。我不希望这些组出现在匹配结果中(尽管我可以很容易地忽略它们)。有没有正确的方法来做到这一点?
答案 0 :(得分:4)
您可以使用非捕获组:
(?:xxx)
非捕获组的工作方式与普通组类似,您可以在其上使用运算符。但它不会捕获任何内容,也不能将其用于反向引用。