L'espressione è:Come posso trasformare questa espressione di Backus-Naur Form in un Regex (.Net)?
N | (1 { A | B | C | D | E1 | E2 | E3 })
Senso descrittore "N" o uno o più dei descrittori elencati senza ripetizione.
Il migliore che ho ottenuto è:
@"^(N|(A|B|C|D|E1|E2|E3){1,})$"
Ma ciò non impedisce la ripetizione.
@"^(N|(A{0,1}B{0,1}...)$"
che impedisce ripetizione ma poi richiede un ordine specifico per gli elementi, che non è realmente OK o.
Qualche idea?
(non sono realmente sicuro che l'espressione BNF in sé non consente la ripetizione, ma questo è quello che mi serve.)
http://kore-nordmann.de/blog/do_NOT_parse_using_regexp.html Usa le espressioni regolari per riconoscere parole, non strutture. –
Immagino che abbia senso. Ma cosa dovrei usare per riconoscere questa struttura? @DavidBrabant Verrà utilizzato per convalidare l'input del modulo indicato. – Daniel
Oppure PCRE è il metodo che stai suggerendo? – Daniel