PHP preg_replace 带破折号和数字的电话号码
PHP preg_replace phonenumber with dash and numbers
我的数据库中有几个电话号码以特定的书写方式列出。
我想在每两个数字后有一个 space。我以为我会这样做:
$numbers = '06-12345678';
$regex = '/(\d{2})(\d{1})(\d{2})(\d{2})(\d{2})(\d{2})/';
$result = preg_replace($regex, ' ', $numbers);
echo $result;
但这行不通。它只是将所有数字并排放置。
我的预期输出:
06 - 12 34 56 78
这应该适合你:
$numbers = "06-12345678";
echo $result = preg_replace("/(\d{2})-(\d{2})(\d{2})(\d{2})(\d{2})/", " - ", $numbers);
正则表达式解释:
(\d{2})-(\d{2})(\d{2})(\d{2})(\d{2})
- 第一个捕获组 (\d{2})
- \d{2}匹配一个数字[0-9]
- 量词:{2} 恰好 2 次
- - 匹配字符 - 字面意思
- 第二个捕获组 (\d{2}) //<- 4x 相同
- \d{2}匹配一个数字[0-9]
- 量词:{2} 恰好 2 次
输出:
06 - 12 34 56 78
我的数据库中有几个电话号码以特定的书写方式列出。
我想在每两个数字后有一个 space。我以为我会这样做:
$numbers = '06-12345678';
$regex = '/(\d{2})(\d{1})(\d{2})(\d{2})(\d{2})(\d{2})/';
$result = preg_replace($regex, ' ', $numbers);
echo $result;
但这行不通。它只是将所有数字并排放置。
我的预期输出:
06 - 12 34 56 78
这应该适合你:
$numbers = "06-12345678";
echo $result = preg_replace("/(\d{2})-(\d{2})(\d{2})(\d{2})(\d{2})/", " - ", $numbers);
正则表达式解释:
(\d{2})-(\d{2})(\d{2})(\d{2})(\d{2})
- 第一个捕获组 (\d{2})
- \d{2}匹配一个数字[0-9]
- 量词:{2} 恰好 2 次
- - 匹配字符 - 字面意思
- 第二个捕获组 (\d{2}) //<- 4x 相同
- \d{2}匹配一个数字[0-9]
- 量词:{2} 恰好 2 次
输出:
06 - 12 34 56 78