Php 在preg_replace()中使用捕获组
我很难理解preg_替换。 这就是我目前所得到的。 preg_replace$patter、$replacement、$string 但是,当有捕获组替代时,我感到困惑。 但我还是得到了一些。如下 preg_替换“/\w+/”、“你好”、“说你好!” 我知道这会导致“你好!”。 我可以用抓捕小组做更多的事情。 preg_替换“/\w+/”、“\1你好”、“说世界!”,一, 这将导致“向世界问好” 这是我不明白的Php 在preg_replace()中使用捕获组,php,regex,pcre,Php,Regex,Pcre,我很难理解preg_替换。 这就是我目前所得到的。 preg_replace$patter、$replacement、$string 但是,当有捕获组替代时,我感到困惑。 但我还是得到了一些。如下 preg_替换“/\w+/”、“你好”、“说你好!” 我知道这会导致“你好!”。 我可以用抓捕小组做更多的事情。 preg_替换“/\w+/”、“\1你好”、“说世界!”,一, 这将导致“向世界问好” 这是我不明白的 <?php $string = 'April 15, 2003'; $patt
<?php
$string = 'April 15, 2003';
$pattern = '/(\w+) (\d+), (\d+)/i';
$replacement = '${1}1,$3';
echo preg_replace($pattern, $replacement, $string);
?>
Output:
April1,2003
${1}1$3是什么意思
使用$1\1和
这个${1}1是什么意思?好问题
用于替换零件
我的猜测是$1${1}和$1${1}基本相同,只不过其中一个有一个额外的组
我认为我们正在使用${1}1,因为如果我们不这样做,我们会有$11,这并不简单,因为我们没有11个捕获组,我们只有其中的3个,类似于\11
${1}1,$3表示第一个捕获组,${1},数字1,第三个捕获组,$3
在正则表达式内部
当我们在正则表达式中使用\1或\2,而不是作为
替换,它将引用前面的捕获组$1和$2,这与替换部分中的\1和2相同,我也认为这可能会造成合理和有效的混淆
参考
因此,$1和\1是相同的。我们正在捕获第一个匹配的组?我很困惑?这是一个命名组。你能给我任何链接来澄清我对捕获组和命名捕获组的疑问吗?你的回答很有帮助。我非常感谢你的回答和支持,非常感谢。