除捕获组的语法外,其它的(?...)语法都不是捕获组的验证
在一篇正则表达式技术文档中看到下面内容: “外需要说明的一点是,除(Expression)和(?<name>Expression)语法外,其它的(?...)语法都不是捕获组。” 文本内容 <td>a</td><td>b</td> 正则表达式 (?is)<td>(?:(?!</td>).)*</td> 注意上面正则表达式的代码,他对“(?!</td>).”进行“强制非捕获组”,我在短信中告诉他,可以这样写:(?is)<td>((?!</td>).)*</td> 文本内容 <td>a</td><td>a</td> 正则表达式 <td>((?!</td>).)*</td><td>(1)*</td> 匹配结果 <td>a</td><td>a</td> 这就证明,如果不对“(?!</td>).”进行强制为非捕获组,它是会捕获的,而这个捕获,我根本不需要它。 文本内容 <td>a</td><td>a</td> 正则表达式 <td>((?!</td>).)*</td><td>(2.)*</td> 匹配结果:不匹配 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |