我进行了快速谷歌搜索,但找不到任何结果。 * 和 ?包括零长度匹配。我怎样才能将它们从我的结果中排除?
例如运行一个? “ada” 在 1 和 3 处返回零长度匹配。如何排除它们?
这是一个非常普遍的问题,我宁愿根据具体情况来解决;但是一个始终有效的选项(只要您有可用的前瞻 - 您没有指定正则表达式方言)是预先添加(?=.)
到正则表达式。/(?=.)a?/
在功能上等同于/a/
; /(?=.)a*/
在功能上等同于/a+/
, 并/aa*/
.
因此,你问题中的例子并没有真正意义 - 你永远不会写/(?=.)a?/
since /a/
在语法和概念上都更简单。因此,这基本上是一个 XY 问题 - 最好询问您的真实用例,因为这是一个没有实际意义的问题/a?/
and /a*/
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)