正则表达式中的明星范围

时间:2017-01-23 02:51:26

标签: regex

我正在阅读有关PHP的教程,并提供了如下示例:

p(hp)*

教程说这个正则表达式将包含一个包含p的字符串,后跟一系列零次或多次php的字符串。

我认为p后面会出现零次或多次hp,而不是php

我在这里错过了什么吗?

由于

2 个答案:

答案 0 :(得分:1)

可能你是从这个link 得到的,这是错误的

enter image description here

p(hp)*正确可能匹配:

p
php
phphp
phphphp
phphphphp 
(...)

因此p后跟零{或} hp

由于教程中存在错误,我建议您检查其他文档,因为您可能会发现其他一些不正确的示例。 这证明该网站没有修改。

答案 1 :(得分:0)

由于Meninx已经检测到了这个问题(未经修改的网站),我在正则表达式中添加了一些更多关于使用*的细节,因为问题标题正在询问"正则表达式中的明星范围" 。

在正则表达式中使用*有两种方法:

  1. Greedy Quantifier
  2. 零件或多件事
  3. 贪婪量词

    str 之后匹配尽可能多的字符。

    /string.*a/
    

    这个字符串将通过 bove regex获得绿色匹配。

    零或更多

    at*
    

    bove regex