1

前:ThisIsExample 後:This-Is-Example

正規表現で可能ですか?大文字で分解してこれを実行しようとしましたが、大文字の文字で文字列を分割することは不可能です。

4

2 に答える 2

4

次のように実行できます。

$result = preg_replace('~[a-z]\K(?=[A-Z])~', '-', $yourString);

\K以前に一致したものをすべてリセットすると、このトリックを使用して、すべての大文字の前に小文字を一致させることができます。

(?=..)は先読みで、 の後に が続くことを意味します。先読みは単なるチェックですが、何も一致しません。

于 2013-07-25T17:42:41.153 に答える
2

はい、正規表現を使用して可能です。この StackOverflow の回答を参照してください: https://stackoverflow.com/a/6227110
回答は、大文字の前にアンダースコアを追加するソリューションを提供するため、ダッシュ (- 記号) を追加するには、これが正しいコードです:

$result = preg_replace('/\B([A-Z])/', '-$1', $subject);

お役に立てれば。

于 2013-07-25T17:50:46.343 に答える