PHP正则表达式与字符串分开的数字
答
一个正则表达式可以是这个样子:
(\d+)([a-zA-Z]+)
然后,您可以使用捕获组在更换表情,与他们之间的空间。
$1 $2
答
正则表达式将是“/^([0-9]+)(.+)/”和替换“\ 1 \ 2”或“$ 1 $ 2”。不记得PHP是否使用\ 1或$ 1来引用regexp中的第一个匹配项。
+0
这两个工作,你可以在手册中找到这个:http://php.net/preg_replace - 请参阅*替换*参数。 – hakre
答
我用preg_split函数来分离字符串的组成部分。再加入的元素,使用空间作为分隔符:
<?php
$str = '01string44str';
$elements = preg_split('/(\d+)/', $str, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
$output = implode(" ", $elements);
print $output;
此打印:
01串44 STR
更有效的解决方案将使用preg_replace官能团与后面参照:
<?php
$str = '01string44str';
$output = preg_replace('/(\d+)/', '$1 ', $str);
print $output;
这打印一个littl Ë不同的结果:
01 string44海峡
不知道,你是否需要 '串' 和 '44' 之间的空间。对于你的字符串'01SOMECOMPANY'它可以正常工作。
答
以下示例将向您解释。
$string = "01SOMECOMPANY";
preg_match('/^([0-9]*)(.*)/i', $string, $matches);
echo $matches[1]." ".$matches[2];
结果:01 SOMECOMPANY
你尝试过什么呢? –
你不需要regex在'index = 2'处插入一个空格。更好的解释和更多的用例会帮助你的事业。 – Artless