我正在阅读有关PHP的教程,并提供了如下示例:
p(hp)*
教程说这个正则表达式将包含一个包含p
的字符串,后跟一系列零次或多次php
的字符串。
我认为p
后面会出现零次或多次hp
,而不是php
。
我在这里错过了什么吗?
由于
答案 0 :(得分:1)
可能你是从这个link 得到的,这是错误的:
p(hp)*
的正确可能匹配:
p
php
phphp
phphphp
phphphphp
(...)
因此p后跟零{或} hp
。
由于教程中存在错误,我建议您检查其他文档,因为您可能会发现其他一些不正确的示例。 这证明该网站没有修改。
答案 1 :(得分:0)
由于Meninx已经检测到了这个问题(未经修改的网站),我在正则表达式中添加了一些更多关于使用*的细节,因为问题标题正在询问"正则表达式中的明星范围" 。
在正则表达式中使用*有两种方法:
贪婪量词
在 str 之后匹配尽可能多的字符。
/string.*a/
这个字符串将通过 bove regex获得绿色匹配。
零或更多
at*
bove regex