web-dev-qa-db-ja.com

正規表現は大文字を小文字に置き換えます

正規表現を使用して大文字を対応する小文字に置き換えようとしています。そのため

EarTH:   1,
MerCury: 0.2408467,
venuS:   0.61519726,

になる

earth:   1,
mercury: 0.2408467,
venus:   0.61519726,

崇高なテキストで。小文字と大文字の両方を含む単語のみを小文字にする方法はありますか。そのため、venUsではなくVENUSに影響します。

180
leemour

してもいいです:

見つけます:(\w)取り替えなさい:\L$1

またはテキストを選択して ctrl+K+L

313
Alex K.

私はこれが他の人にも役立つかもしれないと考えました:

見つける:

  • ([A-Z])(.*)

置き換える:

  • \L$1$2 - >は$1$2のすべての文字を小文字に変換します
  • \l$1$2 - >は$1の最初の文字を小文字に変換し、それ以外はそのままにします。

\U\uの大文字についても同様です。

107
dGo

[A-Z]のような正規表現で検索する前に、大文字と小文字を区別するボタンを押してください(または Alt+C)(として leemourはうまく提案 受け入れられた答えで編集されるために)。明確にするために、他にもいくつか例を挙げます。

  1. 大文字 単語
    • 検索:(\s)([a-z])\sは新しい行にも一致します、すなわち "venuS" => "VenuS")
    • 置き換えます:$1\u$2
  2. 単語を切り捨てない
    • 見つける:(\s)([A-Z])
    • 置き換えます:$1\l$2
  3. 削除 キャメルケース(例:cAmelCAse => camelcAse =>キャメルケース)
    • 見つける:([a-z])([A-Z])
    • 置き換えます:$1\l$2
  4. 単語内の小文字(例:LowerCASe =>小文字)
    • 見つける:(\w)([A-Z]+)
    • 置き換えます:$1\L$2
    • 代替置換:\L$0
  5. 単語内の大文字(例:upperCASe => uPPERCASE)
    • 見つける:(\w)([A-Z]+)
    • 置き換えます:$1\U$2
  6. 大文字前(例:upperCase => UPPERCase)
    • 見つける:(\w+)([A-Z])
    • 置き換えます:\U$1$2
  7. 前の小文字の小文字(例:LOWERCase => lowerCase)
    • 見つける:(\w+)([A-Z])
    • 置き換えます:\L$1$2
  8. 残りを大文字にする(例:upperCase => upperCASE)
    • 見つける:([A-Z])(\w+)
    • 置き換えます:$1\U$2
  9. 残りの部分を小文字にする(例:lOWERCASE => lOwercase)
    • 見つける:([A-Z])(\w+)
    • 置き換えます:$1\L$2
  10. 右シフト大文字(例:Case => cAse => caSe => casE)
    • 見つける:([a-z\s])([A-Z])(\w)
    • 置き換えます:$1\l$2\u$3
  11. 左シフト大文字(例:CasE => CaSe => CAse => Case)
    • 見つける:(\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

2016-06-23編集

Tyler この答えを編集して#4の代替の検索式を提案します。

  • (\B)([A-Z]+)

documentation に従って、\Bは、Wordの境界にない(すなわち、先頭にも末尾にもない)文字を探します。 すべて置換ボタンを使用すると、検索式として(\w)([A-Z]+)を指定した場合とまったく同じことができます。

ただし、\Bのマイナス面は、findの「境界外」制限が原因で、単一の置換ができないことです(正確な理由がわかっている場合はこれを編集してください)。 ).

73
Armfoot

正規表現

検索\w+

置換\L$0

Sublime TextはBoostライブラリのPerl Compatible Regular Expressions(PCRE)エンジンを使用して検索パネルの正規表現を強化します。

\Lすべてを小文字に変換します

$0キャプチャグループ

2
BadTudou

BBEditではこれが動作します(例:ID値を小文字に変更する)。

任意の値を検索します。<a id="(?P<x>.*?)"></a>小文字の同じ文字列に置き換えます:<a id="\L\P<x>\E"></a>

<a id="VALUE"></a>になりました:<a id="value"></a>

1

これを試して

  • 見つける:([A-Z])([A-Z]+)\b
  • 置き換えます:$1\L$2

大文字と小文字の区別がオンになっていることを確認します(Alt + C)

0
Vignesh Kumar A