Bir diziyle başlamayan bir dize için normal ifade


197

Bu programı kullanarak tablolar bir demet işliyorum, ama etiket "tbd_" ile başlayan olanları göz ardı gerekir. Şimdiye kadar [^ tbd_] gibi bir şeyim var ama bu karakterlerle eşleşmiyor.


SchemaSpy nasıl çalışır? Tablo adlarının bir listesini mi veriyorsunuz ya da bir normal ifadeyi mi veriyorsunuz ve bu eşleşmeyi yapıyor mu?
— Mark Biek

Bir normal
— ifadeyi

4
@echoblaze: XML işliyorsanız, neden bir XML ayrıştırıcı kullanmıyorsunuz? Bu, normal ifadeler kullanmaktan çok daha kolay olurdu.
— Gumbo

Yanıtlar:


335

Olumsuz bir ileriye dönük iddia kullanabilirsiniz:

^(?!tbd_).+

Veya olumsuz bir arkaplan iddiası:

(^.{1,3}$|^.{4}(?<!tbd_).*)

Veya sadece düz eski karakter kümeleri ve alternatifleri:

^([^t]|t($|[^b]|b($|[^d]|d($|[^_])))).*

6
Bu herhangi bir normal regex motorla sınırlı mı?
— Mark Biek

1
Ben sadece soruyorum çünkü ikinci olan hala testimde tbd_ ile eşleşiyor gibi görünüyor. İlki harika.
— Mark Biek

5
Normal ifadelere bir göz atın. İnfo'nun lezzet karşılaştırması: regular-expressions.info/refflavors.html
— Gumbo

1
@ Gumbo - bu bitmemeli. * Yerine. *? Tbd_ olan bir dize de bununla başlar ... bu nedenle tanım gereği başka karakterler izlemenize gerek yoktur? Aksi takdirde, iyi bir örnek. Gerçi , arayı destekleyen bir regex motoru gerektiriyor.
— BenAlabaster

1
@balabaster: Boş teller aradığını sanmıyorum. Ama eğer öyleyse, o kolayca değiştirerek bunu değiştirebilirsiniz .+tarafından.*
— bamya
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.