加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

Php,正则表达式

发布时间:2020-12-13 17:25:07 所属栏目:PHP教程 来源:网络整理
导读:我有这种模式(我使用的是 PHP): '/[link=((https?://)?([da-z.-]+).([a-z.]{2,6})([/w .-]*)*/?)]/i' 当我搜索这个字符串时:http://phpquest.zapto.org/users/register.php 比赛是(顺序是0-5): '[link = http://phpquest.zapto.org/users/r
我有这种模式(我使用的是 PHP):

'/[link=((https?://)?([da-z.-]+).([a-z.]{2,6})([/w .-]*)*/?)]/i'

当我搜索这个字符串时:http://phpquest.zapto.org/users/register.php

比赛是(顺序是0-5):

>'[link = http://phpquest.zapto.org/users/register.php]’
>’http://phpquest.zapto.org/users/register.php’
>’http://’
>’phpquest.zapto’
>组织
>”

当我在最后一个子模式中替换*时,如下所示:

'/[link=((https?://)?([da-z.-]+).([a-z.]{2,6})([/w .-]+)*/?)]/i'

比赛是(顺序是0-5):

>'[link = http://phpquest.zapto.org/users/register.php]’
>’http://phpquest.zapto.org/users/register.php’
>’http://’
>’phpquest.zapto’
>组织
>’/users/register.php’

如果有人能帮助我理解为什么我会非常感激,谢谢大家,祝你有个美好的一天.

解决方法

也许更简单的例子是当你比较 this到 this时.

涉及的正则表达式是:

(a*)*

(a+)*

测试字符串是aaaaaa.

发生的事情是,在捕获主要组(在我提供的示例中,a系列)之后,它会尝试匹配更多,但不能.可是等等!它也可以不匹配,因为*表示0次或更多次!

因此,在匹配所有a之后,它将匹配并捕获’nothing’,并且由于仅存储了最后捕获的部分,因此您将获得捕获组的结果.

在(a)*中,在匹配和捕捉aaaaaa之后,它不能匹配或捕捉任何更多(阻止它匹配任何东西,而不是*)因此,aaaaaa是最后一个匹配.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读