「hello_world」などの文字列を「HelloWorld」に変換したり、元に戻したりするために、正規表現だけを使用することは可能ですか?
「ClassName」を別の場所に入力すると、「class_name」が自動的に入力される Sublime Text のスニペットを作成する必要があることが多いため、質問しています。この目的には、perl スタイルの正規表現しか使用できません。
「hello_world」などの文字列を「HelloWorld」に変換したり、元に戻したりするために、正規表現だけを使用することは可能ですか?
「ClassName」を別の場所に入力すると、「class_name」が自動的に入力される Sublime Text のスニペットを作成する必要があることが多いため、質問しています。この目的には、perl スタイルの正規表現しか使用できません。
perl 正規表現の使用:
hello_world -> HelloWorld
s/(_|\b)([a-z])/\u\2/g;
\b
: 境界で一致 (スペース、文字列の開始、句読点など)[a-z]
: 小文字のアルファベット\u
: 次の文字を大文字にする\2
: グループ 2 (最初の小文字)(_|\b)
-> グループ 1([a-z])
-> グループ 2HelloWorld -> hello_world
s/([A-Z][a-z]+|[a-z]+)([A-Z])/\l\1_\l\2/g;
Hello
。s/([A-Z])/_\l\1/g;
続けて使用します。s/^_//;