Intellij IDEA'da büyük harfi küçük harfle değiştirmek için bir normal ifadeyi nasıl kullanabilirim?


92

Bunun için Google'da araştırdım ve diğer normal ifade ayrıştırıcılarıyla nasıl yapılacağını öğrendim:

http://vim.wikia.com/wiki/Changing_case_with_regular_expressions
http://www.regular-expressions.info/replacecase.html

Bunları denedim ve hiçbiri işe yaramadı. Örnek olarak, bunu değiştirmek için bir normal ifade kullanmak istiyorum:

private String Name;
private Integer Bar = 2;

Buna:

private String name;
private Integer bar = 2;

Bunun gibi bir şey denedim:

replace: private (\S+) (\S+)
with: private $1 $L$2
with: private $1 \L$2
with: <etc.>

Hiçbiri çalışmıyor. Bunu intellij'de yapmak mümkün mü yoksa bu eksik bir özellik mi? Bu sadece eğitim amaçlıdır ve örnek oluşturulmuştur. Bunun istihbaratta yapılmasının mümkün olup olmadığını bilmek istiyorum.


3
Normal ifade kullanmak istemenizin bir nedeni var mı? IntelliJ'in bunu yapmak için bir kısayol tuşu var.
ajp15243

@ ajp15243 Bu sadece eğitim amaçlıdır ve örnek oluşturulmuştur. Bunun istihbaratta yapılmasının mümkün olup olmadığını tam anlamıyla bilmek istiyorum.
Daniel Kaplan

3
Yeterince adil! Sadece emin olmak istedim. IntelliJ Regex Sözdizimi referansını buldum ve yorumlarda birisi sizinle aynı soruyu soruyor. Bir moderatör yanıt verdi (ve sanırım biraz yanlış anlaşıldı), ancak yanıt bunun IntelliJ'in normal ifade sözdizimi ile mümkün olmadığını gösteriyor.
ajp15243

Bunun için her zaman bir eklenti yazabilirsiniz.
Meo

1
@tieTYT gaoagong's oldukça iyi, almasına izin vereceğim :).
ajp15243

Yanıtlar:


174

IDEA 15'te , yakalanan ifadelerin durumunu değiştirmek için aşağıdaki anahtarları kullanabilirsiniz. Bu sürüm yayınlandığından bu yana artık resmi olarak belgelenmiştir .

  • \l: sonraki karakterin harf büyüklüğünü küçültün
  • \u: sonraki karakterin durumunu yukarı
  • \L: sonraki karakterlerin büyük / küçük harf durumunu \Eyerine geçen dizenin a veya sonuna kadar küçült
  • \U: \Eyerini alan dizenin a veya sonuna kadar sonraki karakterlerin durumunu yukarı
  • \E: \Uveya tarafından başlatılan bir vaka değişikliğinin sonunu işaretle\L

İşte örnek bir kullanım (dokümantasyon net olmadığı için):

bul: (\ w + _) + (\ w +) değiştir: \ L $ 1 $ 2 \ E

Dönüştürür Yukarıda FOO_BAR_BAZiçin foo_bar_bazvb $ 1 İlk görüntü yakalama grubu (parantez içinde), ikinci sete $ 2 vb anlamına gelir

Gelecek nesillerin iyiliği için: Bu, başlangıçta @gaoagong tarafından bildirildi ve orada belgelendi .


13

Cevabı aradım ve sonra @ ajp15243'ün bunu yukarıda zaten cevapladığını fark ettim. Şu anda Intellij'de bir harfin büyük / küçük harf durumunu değiştirmek için normal ifade değiştirme özelliğini kullanmanın bir yolu yoktur. Aşağıdaki URL'de özellikle ilgili kısa bir tartışma var.

http://www.jetbrains.com/idea/webhelp/regular-expression-syntax-reference.html

Youtrack sorunundaki özelliğe buradan oy verebilirsiniz:

http://youtrack.jetbrains.com/issue/IDEA-70451

Bir regex Intellij eklentisi var, ancak ne yazık ki alt ve üst kasayı da desteklemiyor.

http://plugins.jetbrains.com/plugin/19?pr=idea

Dosyaları doğru şekilde değiştirmek için bir perl programı aracılığıyla çalıştırmanız gerekebilir.


1
İzine göre, bu IntelliJ'in 15. sürümüne ekleniyor
Kevin Sheehan

6

Idea Vim eklentisini kullanmaya başladım ve Vim'de bunun gibi şeyler yapmayı öğrendim . Bu şekilde, bu becerileri Fikir dışında yeniden kullanabilirim.

İstediğinizi yapmak için vim komutu burada.

:%s/private\s\(\w*\)\s\(w*\)/private \1 \L\2/g

IDE'ye girilen normal ifade. Normal ifade deseninden Vim'e kaçmak için fazladan eğik çizgi gerekir.

IDE içinde

IDE'nin içinden Eklenti bulun. görüntü açıklamasını buraya girin


2
VIM öykünmesini kullanmak istemeyecekleri için muhtemelen buradaki insanların% 99'una yardımcı olmayacak büyük bir geçici çözüm. Ancak, bu eklentiyi zaten yükledim, bu yüzden benim için çalışıyor :)
Daniel Kaplan

1
Biliyorum .. Vi ve Vim, IDE kullanan herkese başlangıçta işe yaramaz gibi görünüyor. Sonunda hepsiyle sunucularda karşılaştıktan sonra Vi öğrenmeye başladım. Aletler arasında hareket ederken zihniyetleri değiştirmeme gerek kalmaması hoşuma gidiyor.
Chinto

Daha yeni başlıyorum, henüz akıcı değilim. IDEAVim ile Intellij-IDEA'da Vi kullanmadan öncekinden daha verimli bir düzenleme yaptığınızı düşünüyor musunuz?
Daniel Kaplan

1
Gittikçe daha fazla .. Ben tutulmada iyiydim. Sonra Intellij'e taşındı ve birçok numarasını öğrendi. Sonra, Vim öğrenmenin beni aynı anda Sunucu ve İş İstasyonunda iyi yapacağını anladım. Ayrıca Vim'in metin işleme ve gezinmede çok daha güçlü olduğunu görüyorum. Hala yeniden düzenleme ve referans bulma ve tanımlamaya gitme gibi tüm IDE özellikleri için IDE kısayolları kullanıyorum. Yine de modlar arasında geçiş yapmak çok kolay.
Chinto

1
Bu, vi'nin nasıl kullanılacağını bilen kişiler için mükemmel bir çözümdür. Karmaşık değişiklikler yapmam gerektiğinde IdeaVim'i açıyorum, ardından Idea'nın kendi düzenleyici özelliklerinin keyfini çıkarmak için tekrar geri dönüyorum. Keşke IdeaVim'in ne zaman aktif olduğunu gösterecek bir göstergesi olsaydı.
Bay Lance E Sloan
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.