SORU
12 Kasım 2009, PERŞEMBE


Hiç bir şey ile eşleşen bir Düzenli ifade

Bu aptalca bir soru gibi gelebilir ama sevgili geliştiriciler ile uzun bir konuşma yaptım ve eğlenceli bir şey aklıma geldi.

Yani; düşünce nedir - Bir Düzenli ifade neye benziyor, o asla herhangi bir dize, hiç uyumlu olacak!

EditNeden bunu istiyorsun? Pekala, öncelikle, çünkü bu ilginç bir senaryo için bu tür bir ifade, ve ikinci olarak buna ihtiyacım var çünkü buluyorum.

O senaryoyu ben Dictionary<string, Regex> bir sözlük olarak tanımlıyoruz. Bu gördüğünüz gibi, bir dize ve bir ifade içerir.

Bu sözlük tüm işlerini yapmalılar nasıl sadece referans olarak sözlüğü kullanan yöntemleri oluşturmak göre, onlardan biri ayrıştırılmış bir günlük karşı yukarıdaki diyagram maçlar.

Eğer bir ifade eşleşti, Dictionary<string, long> başka bir ifade tarafından döndürülen bir değer eklenir. Sözlükte bir ifade ile eşleşen tüm yakalamak için, günlük iletileri yeni bir grup oluşturdum adı "" bilinmiyor.

Bu grup için başka bir şey eşleşmedi her şey eklenir. Ama önlemek için "bilinmiyor"ifadesi için uyumsuzluk (kazara) bir günlük-mesajı aldım oluşturmak için bir ifade olduğunu kesinlikle hiç uyumlu, ne olursa olsun dize verdim.

Böylece, bu yüzden "gerçek soru"...

CEVAP
4 Aralık 2009, Cuma


Kaldıraç negative lookahead:

>>> import re
>>> x=r'(?!x)x'
>>> r=re.compile(x)
>>> r.match('')
>>> r.match('x')
>>> r.match('y')

bu YENİDEN bir çelişki olduğunu ve bu nedenle hiç bir şey maç olacak.

Python,re.() maçörtülü olarak ekler başlangıç dizesi çapa (\A) normal ifadenin bir başlangıç. Çapa performans için önemli olan bu: o olmadan, tüm dize taranır. Bu Python kullanarak çapa açıkça eklemek istiyorum:

\A(?!x)x

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • CorridorDigital

    CorridorDigi

    17 Mayıs 2010
  • Julian Smith

    Julian Smith

    31 EKİM 2006
  • listedabive

    listedabive

    30 Ocak 2007