SORU
5 EKİM 2008, Pazar


Normal bir ifade geçerli bir normal ifade tespit var mı?

Başka bir düzenli ifade ile geçerli bir normal ifade algılamak mümkün mü? Eğer öyleyse lütfen örnek kodu aşağıda veriyorum.

CEVAP
5 EKİM 2008, Pazar


/
^                                             # start of string
(                                             # first group start
  (?:
    (?:[^? *{}()[\]\\|]                       # literals and ^, $
     | \\.                                    # escaped characters
     | \[ (?: \^?\\. | \^[^\\] | [^\\^] )     # character classes
          (?: [^\]\\]  | \\. )* \]
     | \( (?:\?[:=!]|\?<[=!]|\?>)? (?1)?? \)  # parenthesis, with recursive content
     | \(\? (?:R|[ -]?\d ) \)                 # recursive matching
     )
    (?: (?:[? *]|\{\d (?:,\d*)?\}) [? ]? )?   # quantifiers
  | \|                                        # alternative
  )*                                          # repeat content
)                                             # end first group
$                                             # end of string
/

Bu özyinelemeli bir düzenli ifade, birçok normal ifade motoru tarafından desteklenmiyor. Ancak sisteminizde tabanlı olanları desteklemelidir.

Boşluk ve yorumlar olmadan:

/^((?:(?:[^? *{}()[\]\\|] |\\.|\[(?:\^?\\.|\^[^\\]|[^\\^])(?:[^\]\\] |\\.)*\]|\((?:\?[:=!]|\?<[=!]|\?>)?(?1)??\)|\(\?(?:R|[ -]?\d )\))(?:(?:[? *]|\{\d (?:,\d*)?\})[? ]?)?|\|)*)$/

Düzenleme:Bazı açıklamalar eklendi.
Edit2:Ekledi özyineleme yapıları, iyelik nicelik ve dize kenar iddialar. Şimdi kendisi (kısa versiyonu en az) ile eşleşir.
Edit3:Hata düzeltme. "|" "|?" geçerli değil. o da bir gerçek, değil
Edit4:Karakter sınıfları güncellendi. İsteğe bağlı olumsuzluk olabilir, en az bir karakter olmalıdır ve ilk karakter ] sınıf kapatmadan olabilir.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DRDAnimation

    DRDAnimation

    28 EYLÜL 2012
  • Shylo Sharity

    Shylo Sharit

    27 EKİM 2011
  • TechRax

    TechRax

    21 EYLÜL 2009