我有以下字符串:01SOMECOMPANY
,我希望最终得到01 SOMECOMPANY
。如何使用正则表达式执行此操作?
答案 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