私は2つの単語を組み合わせ
KitnerCoster
て、真ん中にスペースを追加したい.
1567 次
2 に答える
4
正規表現を使用すると、次のようなことができます
s/([a-z])([A-Z])/'$1 $2'/g
ただし、正規表現を作成する最初の試行は通常失敗するため、いずれかの部分を修正する必要がある場合があります。
1 文字の長い単語をどのように処理しますか? FooXBar の「X」のように?X は、上記の正規表現では別の単語として認識されません。
于 2010-08-06T13:53:18.100 に答える
3
最初の単語が大文字であるかどうか気にしますか? そうでない場合は、
// ASCII
preg_replace('/([a-z])([A-Z])/', '$1 $2', $string)
preg_replace('/([[:lower:]])([[:upper:]])/', '$1 $2', $string)
// Unicode (UTF-8)
preg_replace('/(\p{Ll})(\p{Lu})/u', '$1 $2', $string)
あなたが気にし、修正したいKitnerCostner
が放っておくkitnerCostner
なら、そうしてください
// ASCII
preg_replace('/\b([A-Z]\S*[a-z])([A-Z])/', '$1 $2', $string)
preg_replace('/\b([[:upper:]]\S*[[:lower:]])([[:upper:]])/', '$1 $2', $string)
// Unicode (UTF-8)
preg_replace('/\b(\p{Lu}\S*\p{Ll})(\p{Lu})/u', '$1 $2', $string)
ASCII 文字のみに一致するバージョンと、すべての Unicode 文字に一致するバージョンを提供しました。Unicode は PHP 5.1.0 で利用可能です。
于 2010-08-06T13:57:21.057 に答える