如何从结果中排除零长度正则表达式匹配?

时间:2015-07-28 03:51:29

标签: regex

我做了一个快速的谷歌搜索,但找不到任何结果。 *和?包括零长度匹配。如何从结果中排除它们?

例如运行? on“ada”在1和3处返回零长度匹配。如何排除它们?

1 个答案:

答案 0 :(得分:1)

这是一个非常通用的问题,我宁愿逐案解决;但是一个始终有效的选项(只要你有前瞻可用 - 你没有指定正则表达式方言)就是在{regexp}之前添加(?=.)/(?=.)a?/在功能上等同于/a/; /(?=.)a*/在功能上等同于/a+//aa*/

因此,你问题中的例子没有意义 - 你永远不会写/(?=.)a?/,因为/a/在语法和概念上都更简单。因此,这基本上是一个XY问题 - 最好问一下你的真实用例,因为/a?//a*/是一个没有实际意义的问题。