我正在使用PHP,並且對於正則表達式不太好。我需要一個preg_replace,如果一個字母或數字相鄰,可以添加一個空格。正則表達式:如果字母與數字相鄰,則添加空格
這些場景:
mystreet12 -> mystreet 12
mystreet 38B -> mystreet 38 B
mystreet16c -> mystreet 16 c
my street8 -> my street 8
感謝。
我正在使用PHP,並且對於正則表達式不太好。我需要一個preg_replace,如果一個字母或數字相鄰,可以添加一個空格。正則表達式:如果字母與數字相鄰,則添加空格
這些場景:
mystreet12 -> mystreet 12
mystreet 38B -> mystreet 38 B
mystreet16c -> mystreet 16 c
my street8 -> my street 8
感謝。
使用POSIX類可移植性:
preg_replace("/([[:alpha:]])([[:digit:]])/", "\\1 \\2", $subject);
得到第一個過渡。
preg_replace("/([[:digit:]])([[:alpha:]])/", "\\1 \\2", $subject);
獲得第二個。
喜歡的東西:
preg_replace_all("/([a-z]+)([0-9]+)/i","\\1 \\2", $subject);
應該讓你遠:)
你可以使用lookarounds匹配這樣的位置,像這樣:
preg_replace('/(?<=[a-z])(?=\d)|(?<=\d)(?=[a-z])/i', ' ', $str);
取決於你如何定義 「信」您可能需要調整[a-z]
。
Lookarounds需要,使其與字符串一樣正常工作:
0a1b2c3
在哪裏解決方案,而將失敗。
不適用於'1a'。 – Qtax
致命錯誤:調用未定義的函數preg_replace_all() – John