Heim >Backend-Entwicklung >PHP-Tutorial >新手请问:正则表达式反向引用的疑问

新手请问:正则表达式反向引用的疑问

WBOY
WBOYOriginal
2016-06-13 11:58:311001Durchsuche

新手请教:正则表达式反向引用的疑问
各位前辈,大家好!我是菜鸟,有事请教。

我最近在看《细说PHP》,看书里讲,正则表达式里的每个子表达式(用()包含起来的),在不添加任何非捕获元字符的情况下,是按照从左至右,每个子表达式的匹配结果存进缓冲区,并用编号\1至\99引用,不知道我这么描述对不对。现在有两个问题:
1、书上说,使用编号引用子表达式,要在编号前加反斜线转义,这条很纠结,我试的是不需要的,是不是跟什么版本有关系?
2、表达式中,某个子表达式加了元字符?:,这样就不会存储匹配结果,那么缓冲区的编号就不会加一,也就没办法用编号来引用,那么,可以重复调用这个子表达式吗?

感谢!
------解决方案--------------------
重复调用跟引用是一个意思吗? 如果是的话,你不是知道答案了吗。
------解决方案--------------------
/^([a-zA-Z]*)\d+\1$/
这不就是 在编号前加反斜线转义 吗?

你的第二问是这个意思吗?
/^(?=[a-zA-Z]+)\d+(?=[a-zA-Z]+)$/

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn