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/register.php]’ 当我在最后一个子模式中替换*时,如下所示: '/[link=((https?://)?([da-z.-]+).([a-z.]{2,6})([/w .-]+)*/?)]/i' 比赛是(顺序是0-5): >'[link = http://phpquest.zapto.org/users/register.php]’ 如果有人能帮助我理解为什么我会非常感激,谢谢大家,祝你有个美好的一天. 解决方法
也许更简单的例子是当你比较
this到
this时.
涉及的正则表达式是: (a*)* 和 (a+)* 测试字符串是aaaaaa. 发生的事情是,在捕获主要组(在我提供的示例中,a系列)之后,它会尝试匹配更多,但不能.可是等等!它也可以不匹配,因为*表示0次或更多次! 因此,在匹配所有a之后,它将匹配并捕获’nothing’,并且由于仅存储了最后捕获的部分,因此您将获得捕获组的结果. 在(a)*中,在匹配和捕捉aaaaaa之后,它不能匹配或捕捉任何更多(阻止它匹配任何东西,而不是*)因此,aaaaaa是最后一个匹配. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |