首页 >后端开发 >php教程 >preg_replace('/^.+?/U','',$auth) 求解这个正则表达式?

preg_replace('/^.+?/U','',$auth) 求解这个正则表达式?

WBOY
WBOY原创
2016-06-06 20:09:161218浏览

请问这个php函数的意思是啥?
preg_replace('/^.+?/U','',$auth)

回复内容:

请问这个php函数的意思是啥?
preg_replace('/^.+?/U','',$auth)

函数 preg_replace 使用正则替换字符串你应该是知道的吧,不懂的话看 官方文档。

我来解释下这个正则表达式 '/^.+?/U'

修饰符 U 表示逆转「贪婪模式」。
正则表达式默认是贪婪模式的,即 + * 等可以匹配多个字符的情况下尽量匹配更多的字符,除非使用了 +? *?
而使用了 U 修饰符之后,默认不使用贪婪模式,+ * 不贪婪匹配, +? *? 反而尽量匹配更多字符。
更多细节你可以看 官方文档 或搜索 正则表达式 PCRE_UNGREEDY

所以, /^.+?/U 其实等同与 /^.+/,表示从开头开始超过1个的所有字符。

所以这个函数的意思是从开头开始所有字符并替换为空字符串。(虽然我不知道写这么绕的表达式除了面试考试还有什么意义)

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn