量词的正则表达式组合*?

aka*_*aii 4 regex

量词的这种组合*?意味着什么?

使用此作为以下示例:

([0-9][AB]*?)
Run Code Online (Sandbox Code Playgroud)

Jon*_*ler 5

这是一场非贪婪的比赛.在[AB]*?,正则表达式寻找[AB]使得整体正则表达式匹配搜索字符串所需的少数事件,而贪婪版本[AB]*查找尽可能多的事件.它是Perl正则表达式的一个特性,因此可以在PCRE(Perl兼容正则表达式)(参见重复)和其他系统中查找Perl的定义.

PCRE页面给出了一个例子:

[贪婪]给出问题的典型例子是尝试匹配C程序中的注释.这些出现在评论之间/**/之内,可能会出现个别*/字符.尝试通过应用模式匹配C注释:

/\*.*\*/
Run Code Online (Sandbox Code Playgroud)

到字符串

/* first comment */  not comment  /* second comment */
Run Code Online (Sandbox Code Playgroud)

失败,因为它与整个字符串匹配,因为.*项目的贪婪.

如果量词后跟一个问号,它就不再是贪婪的,而是匹配可能的最小次数,所以模式

/\*.*?\*/
Run Code Online (Sandbox Code Playgroud)

用C评论做正确的事情.