«regular-expression» etiketlenmiş sorular

Normal ifadeler (genellikle "normal ifade" olarak kısaltılır), dizelerdeki kalıpları eşleştirmek için kullanılan bildirimsel bir dilde yazılmış ifadelerdir.

3
Normal ifadeleri kullanarak bulun ve değiştirin
İçinde bir sürü kullanıcı varsayılanı olan bir dosyam var. Metnin bir kısmını değiştirmek istiyorum, ancak bir eşleştirici ve tekrarlayıcı ile gelmekte zorlanıyorum. Aşağıdaki örneği kullanarak: ############################################################################### # Trackpad, mouse, keyboard, Bluetooth accessories, and input # ############################################################################### # Trackpad: enable tap to click for this user and for the login screen …

2
Vim'in regex sisteminde etrafa bakmak mümkün mü?
Vim'de lookaround ifadeleri kullanmanın faydalı olacağı birçok durumla karşılaştım. Standart lookaround sözdizimini ( (?=), (?!)etc ..) kullanmayı denedim , ancak vim bunu desteklemiyor gibi görünüyor. Vim'in bu tür ifadeler için eşdeğer bir sözdizimi var mı?

3
Normal ifade eşleştiricileri nasıl açgözlü hale getirilir?
Bir dosyadaki metni değiştirmek için bir normal ifade kullanmaya çalışıyorum (tam bir url yerine sadece protokol / etki alanı /): :%s/\(https\?:\/\/.*?\/\).*/\1/gc Ne yazık ki .*?, ?nicelleştiriciden kaçmaya çalışırken dizeyle eşleşmiyor mu? Açgözlü olmayan niceleyici vim'den nasıl kaçınmalı?

1
Vim'de Unicode birleştirme karakteri arayabilir miyim?
Ben karakter ile bir dosya var ã(küçük harf a + tilde birleştirerek). Encodingve fileencodingikisi de utf-8. gagösterileri <a> 97, hex 61, octal 141 <~> 771, Hex 0303, Octal 1403 (ancak gerçek birleştirici tilde ile <>) ve g8gösterileri 61 + cc 83 İle arama /a\%u0303iyi çalışıyor. Sadece \%u0303E486 Paterni Bulunmuyor aranıyor …

5
Vim sözdizimi deseni python anahtar kelime bağımsız değişkenini vurgulamak için
Ben vim regexps (ben de başka bir regexp çok iyi bilmiyorum) öğrenme ile mücadele, bu yüzden asıl sorun maç regexp tanımlamak some_function_call(simple_value, keyword=value) Bu örnekte anahtar kelime. Bu yüzden, parensin içindeyse ve ondan sonra eşit işareti varsa bir kelimeyle eşleşmelidir. Bir sonraki sorun vim'de sözdizimi dosyalarının nasıl tanımlanacağıdır. Bununla ilgili …

1
Vim normal ifadesi neden 9'dan fazla yakalama grubuna izin vermiyor?
Dan :h E65biz Vim bir ikame komutu fazla 9 yakalama grupları izin vermez görebiliyoruz. Örneğin, aşağıdaki komut çalışacaktır: s/\v(a)(b)(c)(d)(e)(f)(g)(h)(i)/\9\8\7\6\5\4\3\2\1 Ancak bir tane daha yakalama grubuna sahip olan bu başarısız olacaktır: s/\v(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)/\10\9\8\7\6\5\4\3\2\1 Sorum neden başarısız olduğu hakkında değil (bu bir Vim zor sınırı), ama Vim'in neden bu limite sahip olduğu hakkında …




1
Vim normal ifade değişmezini farklı sihirli modlara dönüştürmenin bir yolu var mı?
Bir dizgi değişmezinde sihirli bir Vim regex varsa, tüm regex'i farklı bir sihirli mod kullanan alternatif bir gösterime dönüştürmenin bir yolu var, bu yüzden bu eşdeğer regex'i kaynak koduna yapıştırabilir miyim? Örneğin, bu sihirli mod kalıbını dönüştürmek istiyorsam: '\m-\=\<\d\+L\=\>\|0[xX][0-9a-fA-F]\+\>' daha okunabilir hale getirmek için çok sihirli moda '\v-=<\d+L=>|0[xX][0-9a-fA-F]+>' Sık sık …

4
\ R ve \ n için mantık s komutunda farklı şeyler ifade ediyor mu?
Hepimiz biliyoruz ki, arama yaparken \nsatırsonu ve satır \rbaşı ( ^M) kullanılır, ancak yerine \rsatırsonu değiştirilirken \nbir boş bayt ( ^@) kullanılır. Bu asimetrinin kökeni nedir? Bu davranışın ... en azından (ve ilk seferinde yanlış yaptığınızda oldukça verimsiz) söylenmesi tuhaf olduğu için, bazı tuhaf tarihsel nedenler olmasını bekliyorum. (bu arada, …

1
Normal ifade arama modeline göre katlama
Boşluk ayrılmış değer sütunları içeren düz bir metin dosyası aldım. Bunun gibi: AU 3030 .... ... .... AU 3031 .... ... .... AU 3032 .... ... .... AU 3033 .... ... .... IT 48100 ... .. ..... IT 40100 ... .. ..... IT 48123 ... .. ..... UK 3333 ... …

3
Vim normal ifadesindeki '\ zs' ve '\ @ <=' atomları arasındaki fark nedir?
Belgelerden aldığım budur: \zsönceki regex ile eşleştikten sonra \@&lt;="vurgulanan kısmı başlatır" ve önceki atom eşleştirildikten sonra "vurgulanan kısmı başlatır" . Ama bunun inceliklerini tam olarak anlayamıyorum, bu yüzden nasıl derinlemesine biraz daha farklı olduklarını açıklayabilir mi? Beni meraklandıran şey buydu: eğer koşarsam /\_s\zsnnoremap yani seçeneğini nnoremapbir boşluk veya bir başlangıç-of-line …

1
Eşleşen bir satırdan önce ve sonra bir dizi n satırını silme?
Yinelenen bir yapılandırma dosyası var ve bir regex ile eşleştirmek ve bir maçtan önce ve sonra bir dizi satırı silmek istiyorum. Ayrıca tek komutta eşleşmeyi silmek istiyorum. Kullanabilirim... :g/match/-1d ... bir maçtan önce birden fazla satırı silmek için birkaç kez ... ... ve birkaç çağrı ile birleştirin ... :g/match/+1d ... …


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.