mat*_*b33 14 php regex preg-replace
为什么以下代码:
<?php echo preg_replace("/(.*)/", "$1.def", "abc");
Run Code Online (Sandbox Code Playgroud)
输出abc.def.def而不是abc.def?
我很想知道重复发生的原因.
使用/(.+)/或/^(.*)$/按预期工作,但我不是在寻找解决方案,只是问一个问题(虽然这些模式可能与答案有关).
在这里修改现场版.
因为.*匹配字符串末尾的空子字符串.这意味着字符串有两个匹配项abc:
abc→abc.def.def这给了abc.def.def.
编辑:在正则表达式中使用贪婪量词的String.replaceAll()异常中解释了它发生原因的详细信息.
| 归档时间: |
|
| 查看次数: |
409 次 |
| 最近记录: |