如何使用+ simple从字符串中提取电话号码。我的输入是+6594758744(威廉)我的预期输出是+6594758744 ..
所以我需要从下面的字符串类型中提取+6594758744
$str1='+6594758744 (william)'; $str2='+6594758744 (william:brother)'; $str3='+6594758744 ( william : brother )'; $str4 ='+65 94758744 ( william allan:brother )';
答案 0 :(得分:1)
您的正则表达式可以捕获加号,后跟数字和空格。然后,生成的匹配可以删除空格。例如:
<?php
$strings = array(
'+6594758744 (william)',
'+6594758744 (william:brother)',
'+6594758744 ( william : brother )',
'+65 94758744 ( william allan:brother )'
);
$regexp = '/((\+)?([\d ]+))/';
foreach ($strings as $string) {
preg_match($regexp, $string, $matches);
print preg_replace('/ /', '', $matches[0]) . "\n";
}
答案 1 :(得分:0)
老实说......这里不需要正则表达式。
<?php
$str='+6594758744(william)';
$arr = explode('(',$str);
echo $arr[0]; //"prints" +6594758744
或单行。
<?php
echo array_shift(explode('(','+6594758744(william)'));
答案 2 :(得分:0)
您可以尝试preg_replace
:
$s = '+65 94758744(william)';
$r = preg_replace('/^.*?(\+[\d ]+).*$/', '$1', $s);
//=> +65 94758744
答案 3 :(得分:0)
试试
$str = '+6594758744(william) ';
echo "+" . sprintf('%.0f', $str);
答案 4 :(得分:0)
试试这个......
$str='+6594758744(william)';
$output=preg_replace("/[^0-9]/","",$str);
echo "+".$output;
答案 5 :(得分:0)