私はPHPを使用していますが、正規表現はあまり得意ではありません。文字または数字が隣接している場合にスペースを追加できるpreg_replaceが必要です。
シナリオは次のとおりです。
mystreet12 -> mystreet 12
mystreet 38B -> mystreet 38 B
mystreet16c -> mystreet 16 c
my street8 -> my street 8
ありがとう。
ルックアラウンドを使用して、次のような位置に一致させることができます。
preg_replace('/(?<=[a-z])(?=\d)|(?<=\d)(?=[a-z])/i', ' ', $str);
「文字」をどのように定義するかによって、調整したい場合があります[a-z]
。
次のような文字列で適切に機能させるには、ルックアラウンドが必要です。
0a1b2c3
なしのソリューションが失敗する場所。
何かのようなもの:
preg_replace("/([a-z]+)([0-9]+)/i","\\1 \\2", $subject);
あなたを遠くまで連れて行ってくれるはずです:)
移植性のための POSIX クラスの使用:
preg_replace("/([[:alpha:]])([[:digit:]])/", "\\1 \\2", $subject);
最初のトランジションを取得します。
preg_replace("/([[:digit:]])([[:alpha:]])/", "\\1 \\2", $subject);
秒を取得します。