使用PHP preg_replace

时间:2015-06-15 09:09:51

标签: php regex preg-replace

我有这样的格式:00-0000,想要到0000-0000。

到目前为止我的代码:

<?php
$string = '11-2222';
echo $string . "\n";
echo preg_replace('~(\d{2})[-](\d{4})~', "$1_$2", $string) . "\n";
echo preg_replace('~(\d{2})[-](\d{4})~', "$100$2", $string) . "\n";

问题是 - 0将无法正确添加(我猜preg_replace认为我说的是100美元而不是1美元)

我怎样才能使这个工作?

2 个答案:

答案 0 :(得分:3)

您可以尝试下面的内容。

setcontentview()

这会将连字符替换为echo preg_replace('~(?<=\d{2})-(?=\d{4})~', "00", $string) . "\n"; 。你仍然很简单

00

答案 1 :(得分:1)

替换字符串"$100$2"被解释为捕获组100的内容,后面是捕获组2的内容。

为了强制它使用捕获组1的内容,您可以将其指定为:

echo preg_replace('~(\d{2})[-](\d{4})~', '${1}00$2', $string) . "\n";

请注意我如何在单引号字符串中指定替换字符串。如果用双引号字符串指定它,PHP将尝试(并失败)扩展名为1的变量。