正規表現を使用して大文字を対応する小文字に置き換えようとしています。そのため
EarTH: 1,
MerCury: 0.2408467,
venuS: 0.61519726,
になる
earth: 1,
mercury: 0.2408467,
venus: 0.61519726,
崇高なテキストで。小文字と大文字の両方を含む単語のみを小文字にする方法はありますか。そのため、venUs
ではなくVENUS
に影響します。
してもいいです:
見つけます:(\w)
取り替えなさい:\L$1
またはテキストを選択して ctrl+K+L。
私はこれが他の人にも役立つかもしれないと考えました:
見つける:
([A-Z])(.*)
置き換える:
\L$1$2
- >は$1
と$2
のすべての文字を小文字に変換します\l$1$2
- >は$1
の最初の文字を小文字に変換し、それ以外はそのままにします。\U
と\u
の大文字についても同様です。
[A-Z]
のような正規表現で検索する前に、大文字と小文字を区別するボタンを押してください(または Alt+C)(として leemourはうまく提案 受け入れられた答えで編集されるために)。明確にするために、他にもいくつか例を挙げます。
(\s)([a-z])
(\s
は新しい行にも一致します、すなわち "venuS" => "VenuS")$1\u$2
(\s)([A-Z])
$1\l$2
([a-z])([A-Z])
$1\l$2
(\w)([A-Z]+)
$1\L$2
\L$0
(\w)([A-Z]+)
$1\U$2
(\w+)([A-Z])
\U$1$2
(\w+)([A-Z])
\L$1$2
([A-Z])(\w+)
$1\U$2
([A-Z])(\w+)
$1\L$2
([a-z\s])([A-Z])(\w)
$1\l$2\u$3
(\w)([A-Z])([a-z\s])
\u$1\l$2$3
質問について(大文字と小文字を少なくとも1つずつ組み合わせて単語を一致させ、それらを小文字にする)、 leemour's comment-answer正解です。わかりやすくするために、置き換えるグループが1つしかない場合は、内部グループに?:
を使用するか(つまり 非キャプチャグループ )、または作成しないようにすることができます。
((?:[a-z][A-Z]+)|(?:[A-Z]+[a-z]))
OR ([a-z][A-Z]+|[A-Z]+[a-z])
\L$1
Tyler この答えを編集して#4の代替の検索式を提案します。
(\B)([A-Z]+)
documentation に従って、\B
は、Wordの境界にない(すなわち、先頭にも末尾にもない)文字を探します。 すべて置換ボタンを使用すると、検索式として(\w)([A-Z]+)
を指定した場合とまったく同じことができます。
ただし、\B
のマイナス面は、findの「境界外」制限が原因で、単一の置換ができないことです(正確な理由がわかっている場合はこれを編集してください)。 ).
正規表現
検索:\w+
置換:\L$0
Sublime TextはBoostライブラリのPerl Compatible Regular Expressions(PCRE)エンジンを使用して検索パネルの正規表現を強化します。
\L
すべてを小文字に変換します
$0
キャプチャグループ
BBEditではこれが動作します(例:ID値を小文字に変更する)。
任意の値を検索します。<a id="(?P<x>.*?)"></a>
小文字の同じ文字列に置き換えます:<a id="\L\P<x>\E"></a>
<a id="VALUE"></a>
になりました:<a id="value"></a>
これを試して
([A-Z])([A-Z]+)\b
$1\L$2
大文字と小文字の区別がオンになっていることを確認します(Alt + C)