Saya mencoba mengganti huruf besar dengan huruf kecil yang sesuai menggunakan regex. Yang seperti itu
EarTH: 1,
MerCury: 0.2408467,
venuS: 0.61519726,
menjadi
earth: 1,
mercury: 0.2408467,
venus: 0.61519726,
dalam Teks Sublim. Bagaimana saya bisa menurunkan huruf hanya dalam kata-kata yang mengandung huruf kecil dan besar? Sehingga itu mempengaruhi venUs
dan tidak VENUS
.
regex
sublimetext3
sublimetext2
sublimetext
Leemour
sumber
sumber
\U
$1\L$2\E$3
Saya pikir ini mungkin berguna bagi orang lain juga:
Temukan:
([A-Z])(.*)
menggantikan:
\L$1$2
-> akan mengonversi semua huruf menjadi$1
dan$2
menjadi huruf kecilTAPI
\l$1$2
-> hanya akan mengonversi huruf pertama$1
menjadi huruf kecil dan membiarkan yang lainnya apa adanyaHal yang sama berlaku untuk huruf besar dengan
\U
dan\u
sumber
\l$1$2
hanya akan membuat keseluruhan$1
dalam huruf kecil dalam kasus ini di sini, karena$i
hanya berisi satu huruf.\l
=> Huruf pertama berikut untuk huruf kecil dan\u
=> Huruf pertama berikut ke huruf besar. Di mana\U
dan\I
melakukannya untuk semua surat berikut.\E
akhiri\L
atau\U
urutan.Sebelum mencari dengan regex like
[A-Z]
, Anda harus menekan tombol case sensitive (atau Alt+ C) (karena leemour disarankan untuk diedit dalam jawaban yang diterima). Untuk lebih jelasnya, saya meninggalkan beberapa contoh lain:(\s)([a-z])
(\s
juga cocok dengan baris baru, yaitu "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
Mengenai pertanyaan (mencocokkan kata-kata dengan setidaknya satu huruf besar dan satu huruf kecil dan membuatnya menjadi huruf kecil), jawaban-komentar leemour adalah jawaban yang tepat . Hanya untuk memperjelas, jika hanya ada satu kelompok untuk diganti, Anda bisa menggunakan
?:
dalam kelompok dalam (yaitu kelompok yang tidak ditangkap ) atau menghindari membuat mereka sama sekali:((?:[a-z][A-Z]+)|(?:[A-Z]+[a-z]))
ATAU([a-z][A-Z]+|[A-Z]+[a-z])
\L$1
2016-06-23 Edit
Tyler menyarankan dengan mengedit jawaban ini ekspresi penemuan alternatif untuk # 4:
(\B)([A-Z]+)
Menurut dokumentasi ,
\B
akan mencari karakter yang tidak di batas kata (yaitu tidak di awal dan bukan di akhir). Anda dapat menggunakan tombol Ganti Semua dan melakukan hal yang sama persis seperti jika Anda memiliki(\w)([A-Z]+)
ekspresi find.Namun, downside dari
\B
adalah bahwa hal itu tidak memungkinkan penggantian tunggal, mungkin karena find 's 'tidak batas' pembatasan (silakan mengedit ini jika Anda tahu alasan yang tepat).sumber
Ekspresi reguler
Temukan :
\w+
Ganti :
\L$0
\L
Mengubah semuanya menjadi huruf kecil$0
Kelompok pengambilansumber
Dalam BBEdit berfungsi seperti ini (mis .: mengubah nilai ID menjadi huruf kecil):
Cari nilai apa pun:
<a id="(?P<x>.*?)"></a>
Ganti dengan yang sama dalam huruf kecil:<a id="\L\P<x>\E"></a>
Apakah:
<a id="VALUE"></a>
Menjadi:<a id="value"></a>
sumber
Coba ini
([A-Z])([A-Z]+)\b
$1\L$2
Pastikan sensitivitas huruf aktif (Alt + C)
sumber
\L
untuk huruf kecil. Saya memperbarui pertanyaan.