Wyraz:Jak mogę przekształcić wyrażenie formy Backus-Naur w Regex (.Net)?
N | (1 { A | B | C | D | E1 | E2 | E3 })
Znaczenie deskryptor „N” lub jednego lub więcej z wymienionych opisów bez powtarzania.
Najlepszym Mam to:
@"^(N|(A|B|C|D|E1|E2|E3){1,})$"
Ale to nie przeszkadza powtórzeń.
@"^(N|(A{0,1}B{0,1}...)$"
To zapobiega powtórzeniu, ale potem wymaga specyficznego zamówienia na elementy, co również nie jest w porządku.
Wszelkie pomysły?
(nie jestem pewien, że rzeczywiście sam wyraz BNF uniemożliwia powtórzenie, ale to jest to, czego potrzebuję.)
http://kore-nordmann.de/blog/do_NOT_parse_using_regexp.html Używaj wyrażeń regularnych do rozpoznawania słów, a nie struktur. –
Myślę, że to ma sens. Ale czego użyłbym, aby rozpoznać tę strukturę? @DavidBrabant Zostanie użyty do sprawdzenia danych wejściowych wspomnianego formularza. – Daniel
A może PCRE to sugerowana metoda? – Daniel