我有这样的格式: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美元)
我怎样才能使这个工作?
答案 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
的变量。