PHP正则表达式从字符串中分隔数字

时间:2013-04-17 19:17:50

标签: php regex string numbers

我有以下字符串:01SOMECOMPANY,我希望最终得到01 SOMECOMPANY。如何使用正则表达式执行此操作?

4 个答案:

答案 0 :(得分:2)

正则表达式为“/^([0-9]+)(.+)/”和替换“\ 1 \ 2”或“$ 1 $ 2”。不记得PHP是否使用\ 1或$ 1来引用regexp中的第一个匹配。

答案 1 :(得分:0)

正则表达式看起来像这样:

  (\d+)([a-zA-Z]+)

然后,您可以在替换表达式中使用捕获组,并在它们之间留一个空格。

  $1 $2

答案 2 :(得分:0)

我使用preg_split函数来分隔字符串的组件。然后使用space作为分隔符加入元素:

<?php
$str = '01string44str';
$elements = preg_split('/(\d+)/', $str, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
$output = implode(" ", $elements);
print $output;

打印:

  

01 string 44 str

更有效的解决方案是使用preg_replace函数和后向引用:

<?php
$str = '01string44str';
$output = preg_replace('/(\d+)/', '$1 ', $str);
print $output;

这会打印出一些不同的结果:

  

01 string44 str

不确定,您是否需要'string'和'44'之间的空格。对于你的字符串'01SOMECOMPANY',它可以正常工作。

答案 3 :(得分:0)

以下示例将向您解释。

$string = "01SOMECOMPANY";
preg_match('/^([0-9]*)(.*)/i', $string, $matches);
echo $matches[1]." ".$matches[2];

结果:
01 SOMECOMPANY