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

  • SolidWorksTutoriels

    SolidWorksTu

    14 Kasım 2013
  • thetrollska

    thetrollska

    2 EKİM 2009
  • wwjoshdu

    wwjoshdu

    18 ŞUBAT 2011