如何从PHP中的字符串中提取简单和数字

时间:2014-02-07 10:01:23

标签: php regex

如何使用+ simple从字符串中提取电话号码。我的输入是+6594758744(威廉)我的预期输出是+6594758744 ..

所以我需要从下面的字符串类型中提取+6594758744

$str1='+6594758744 (william)'; $str2='+6594758744 (william:brother)'; $str3='+6594758744 ( william : brother )'; $str4 ='+65 94758744 ( william allan:brother )';

6 个答案:

答案 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)'));

Demo

答案 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)

试试这个

模式是

/(\+\d{10})/

这将捕获电话号码

SEE HERE