2013-04-17 72 views
0

我有以下字符串:01SOMECOMPANY,我想以01 SOMECOMPANY結束。我如何使用正則表達式來做到這一點?PHP正則表達式與字符串分開的數字

+0

你嘗試過什麼呢? –

+0

你不需要regex在'index = 2'處插入一個空格。更好的解釋和更多的用例會幫助你的事業。 – Artless

回答

0

一個正則表達式可以是這個樣子:

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

然後,您可以使用捕獲組在更換表情,與他們之間的空間。

$1 $2 
2

正則表達式將是「/^([0-9]+)(.+)/」和替換「\ 1 \ 2」或「$ 1 $ 2」。不記得PHP是否使用\ 1或$ 1來引用regexp中的第一個匹配項。

+0

這兩個工作,你可以在手冊中找到這個:http://php.net/preg_replace - 請參閱*替換*參數。 – hakre

0

我用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'它可以正常工作。

0

以下示例將向您解釋。

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

結果:
01 SOMECOMPANY