regex - *+ 量词究竟有什么作用?

标签 regex quantifiers

懒惰和贪婪的想法很容易理解,但我只见过/用过*+曾经在我的正则表达式中(在 Java 中)[A]|[^B]*+(?!C) (A、B、C 是任意值)仅仅是因为它在惰性修饰符导致 StackOverflow 错误时起作用。

由于大多数搜索引擎无法搜索符号,因此我找不到任何相关文档。那么 *+ 究竟做了什么以及它是如何做到的呢?

最佳答案

贪婪量词匹配它所能匹配的一切,然后模式回溯直到匹配成功。

一个惰性量词向前跟踪直到匹配成功。

占有量词匹配它所能匹配的一切和 从不回溯 .
+表示所有格量词。例如,如果可以用作 ++*+ .

这种防止回溯的能力意味着它可以停止 catastrophic backtracking .

关于regex - *+ 量词究竟有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18067446/

相关文章:

javascript - 如何量化 Javascript 正则表达式中的组?

z3 - 在 Z3 中自定义 LIA 量词消除

javascript - 简化 Javascript 中的 text.replace()

sql - MySql 正则表达式选择存储过程中匹配(动态)多个值的列

java - 捕获文本,包括字符串中的标签,然后用文本重新排序标签

python - Z3无法检查两个公式的等价性

javascript - 为什么惰性量词后跟问号会变得贪婪?

python - 使用正则表达式过滤 pandas

python - 如何从 Python 中的一组正则表达式匹配中提取第一个非空匹配?

php - 为什么我的正则表达式组量词不起作用?