Karakterleri düzenli ifadeler kullanarak büyük harfe dönüştürme (EditPad Pro)


159

Her maçı (sadece bir karakter) büyük harf karakterle değiştirebileceğimi ümit ederek düzenli bir ifade yazdım. EditPad Pro kullanıyorum (ancak sadece bir kez yapmam gerektiğinden, denemek için ücretsiz olduğu sürece bunu yapmama izin verecek başka bir araç kullanmaya hazırım).

Arka plan: Büyük / küçük harfe duyarlı bir uygulama tarafından kullanılan çok uzun bir metin dosyası var ve bazı kelimeler büyük harf char yerine küçük harfle başlıyor, böylece uygulama çöküyor. Bunun elle yapılması çok uzun sürecektir ve düzenli ifadeler olmadan yapmak oldukça karmaşık olacaktır, çünkü (kötü) küçük harfli karakterin oluşumu çok spesifiktir.

Ben normal ifadeyi seçin yazdım ve şimdi bir backreference ile kullanabilirsiniz ($ 1 gayet iyi çalışır) ancak ben büyük harf char ile yerine getiremezsiniz. \ U $ 1 gibi bir şeyin işe yarayacağını düşündüm, ancak EditPad Pro'da yok.

Ücretsiz bir araç bunu yapmama izin vermiyorsa, alternatifin sadece C # ile yapmak olacağını tahmin ediyorum, ancak biraz acelem var ve derleyicinin yanında değilim, bu yüzden önce ekspres baskıyı indirmem gerekiyordu, bu yüzden ... Böyle bir özelliği destekleyen bir araç bulmak tercih edilir!

Teşekkür ederim!


3
Bu soru Süper kullanıcı için daha uygun mu?
georgiecasey

Yanıtlar:


273

TextPad bu işlemi gerçekleştirmenizi sağlar.

misal:

test this sentence

Bulun: \([^ ]*\) \(.*\) Şununla değiştir:\U\1\E \2

\Uaşağıdaki tüm karakter üst olmasına yol açar

\Ekapanacaktır\U

sonuç:

TEST this sentence

13
Bu işlemi .NET Regex'te (kullanmadan ToUpper) gerçekleştirmenin bir yolu var mı ?
Shimmy Weitzhandler

34
Notepad ++ ile de çalışır.
Shawn

33
\U$1\Eiçinde Sublime Text
Qwerty

10
\U\1\Ein Vim
J. Katzwinkel

6
PHPStorm'da da çalışır. Ama tersi bir gereksinimim vardı. Tüm büyük harf öznitelik değerlerini (büyük olasılıkla '90s HTML) küçük harf yerine değiştirmek zorunda kaldı. Kullanarak \L$1\Eçalıştı.
Ejaz

30

Bu konu EditPad Pro hakkında biliyorum, ama ben bir javascript regexp ile aynı ihtiyacı vardı çünkü buraya geldi.

Burada aynı ipucuna ihtiyaç duyan insanlar için, yerine koyma argümanı olarak bir işlev veya lambda kullanabilirsiniz.

Css isimleri ile -javascript eşdeğerine dönüştürmek için aşağıdaki işlevi kullanın, örneğin, "border-top"dönüştürülür "borderTop":

    s = s.replace(/\-[a-z]/g, x => x[1].toUpperCase());

26

EditPad Pro ve PowerGREP, geri başvurunun durumunu değiştirmenizi sağlayan benzersiz bir özelliğe sahiptir. \U1ilk arka başvuruyu büyük harfe, \L1küçük harfe ve \F1ilk karakteri büyük harfe ve geri kalanını küçük harfe ekler . Son olarak, \I1her sözcüğün ilk harfi büyük ve diğer harfleri küçük harf olacak şekilde ekler.

Kaynak: Goyvaerts, Ocak (2006). Düzenli İfadeler: Komple Eğitim . Lulu.com. s. 35 . ISBN 1411677609. Google Kitaplar. Erişim tarihi: 25 Haziran 2010.


6

Bunu, jEdit'in bul ve değiştir iletişim kutusundaki "BeanShell snippet'inin dönüş değeri" seçeneğini kullanarak jEdit'te yapabilirsiniz. Sadece arayın " [a-z]"ve değiştirin " _0.toUpperCase()"(tırnak işaretleri olmadan)


1
Yanıtınız ilk soru ile gerçekten ilgili değil, ancak googling yaparken buldum ve tam olarak aradığım şeydi. Harika, teşekkürler!
adietisheim

5

Ayrıca , ve yerine \I1ve \I2vb . Kullanarak eşleşmenin ilk harfini büyük yazabilirsiniz .$1$2


1

Notepad ++ için başka bir kullanım örneği (normal ifade arama modu)

Find: (g|c|u|d)(et|reate|pdate|elete)_(.)([^\s (]+)
Replace: \U\1\E$2\U\3\E$4

Misal:

get_user -> GetUser
create_user -> CreateUser
update_user -> UpdateUser
delete_user -> DeleteUser
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.