2011-09-07 121 views
-1

我有一個正則表達式和php的小問題。 這是我有:正則表達式和preg_replace問題

8球腳本都大寫SSK

這就是我想要的:

8球腳本都大寫SSK

在總之,我需要動態地校正字符串中的每個字母。無論我在哪裏找到類似「A B R I V」的字符串,它都需要刪除空格「ABRIV」,而不要與字符串中的所有內容擰在一起。所以我可以有一個類似「H我,你好F O O世界,我有B A C O N」的字符串應該成爲「你好,FOO世界你好,我有BACON」。

這是到目前爲止我的代碼:

$string = preg_replace("/(?<=)[A-Z](?![a-z]).(?![A-Za-z]+[a-z])/", '$0', $string); 
+0

'$字符串= str_replace函數( 「SSK」,「 SSK',$ string);'在這樣一個簡單的問題上不需要使用'preg_replace' ...;} – Znarkus

+0

需要動態的tho,進來的字符串也可以是「LKD文字L F D更多文字「。 – eldamar

+3

你需要更具體。爲什麼'S S'和'S K'之間的空格被刪除,但'S Caps'之間的空格不是? –

回答

1

這似乎做你想要什麼:

$s = preg_replace('~(?<![A-Za-z])([A-Z]) (?=[A-Z](?![A-Za-z]))~', '$1', $s); 

see a demo on ideone.com

+0

This Works!感謝鏈接到ideone.com。 – eldamar