如何使用php将电话号码拆分为带空格的字符串
我有不同的字符串,包含如下电话号码:如何使用php将电话号码拆分为带空格的字符串,php,regex,Php,Regex,我有不同的字符串,包含如下电话号码: New order to car wash #663. Customer number is 7962555443. Thank you. 7 9 6 2 5 5 5 4 4 3 或 或 我需要这个: New order to car wash #663. Customer number is 7 9 6 2 5 5 5 4 4 3. Thank you. 或 或 我需要分隔包含3个以上符号的数字。试试这个 $phonenumber="79625554
New order to car wash #663. Customer number is 7962555443. Thank you.
7 9 6 2 5 5 5 4 4 3
或
或
我需要这个:
New order to car wash #663. Customer number is 7 9 6 2 5 5 5 4 4 3. Thank you.
或
或
我需要分隔包含3个以上符号的数字。试试这个
$phonenumber="7962555443";
$formatted = implode(' ',str_split($phonenumber));
您可以使用内爆,只需先使用
str\u split
即可将字符串转换为数组:
$number="905488739038";
$formatted = implode(' ',str_split($number));
echo $formatted;
输出:
9 0 5 4 8 8 7 3 9 0 3 8
Ref:您可以为此使用回调:
$str = preg_replace_callback('~\b\d{4,}~',
function($m) {
return implode(' ', str_split($m[0]));
}, $str);
preg\u replace
单独使用而不使用任何回调函数就足够了
preg_replace('~#\d+(*SKIP)(*F)|(?<=\d)(?=\d)~', ' ', $str);
preg_replace('~#\d+(*SKIP)(*F)|)(?您也可以尝试使用此正则表达式:
((?:(?:\d)\s?){4,})
它将捕获长度为4或4以上的所有数字。此外,您还需要执行一个附加步骤,从结果的匹配项中删除空格,如下所示:
New order to car wash #663. Customer number is 7962555443. Thank you.
7 9 6 2 5 5 5 4 4 3
也可以使用。替换为匹配的数字+空格:“$0”
我需要将包含3个以上符号的数字分开
\b\d
匹配一个\b
后跟一个数字(\d
表示[0-9]
)
(?=\d{3})
在第一个\d
之后使用a检查下一个3也是数字
|\G\d\B
或在前一个匹配的\G
结尾处匹配一个数字,后跟\B
非单词边界
请参阅或处的测试
作为替代方案,您还可以替换水平空格后的第一个数字:显示您尝试了什么!谢谢。这正是我想要的!谢谢!您的代码帮助我提高了我的正则表达式技能。再次使用Tnx。
((?:(?:\d)\s?){4,})
7 9 6 2 5 5 5 4 4 3
$str = preg_replace('~\b\d(?=\d{3})|\G\d\B~', "$0 ", $str);