式は次のとおりです。このBackus-Naur Form式をRegex(.Net)に変換するにはどうしたらいいですか?
N | (1 { A | B | C | D | E1 | E2 | E3 })
繰り返しなし記述子「N」または列挙された記述子の一つ以上の意味します。
私が持っている最高のは、次のとおりです。
@"^(N|(A|B|C|D|E1|E2|E3){1,})$"
しかし、それは繰り返しを防ぐことはできません。
@"^(N|(A{0,1}B{0,1}...)$"
これは繰り返しを防ぎますが、要素に対して特定の順序を必要とします。これは実際には問題ありません。
アイデア?
(私はBNF式自体は繰り返しを禁止することを実際に確認していないが、それは私が必要なものである。)
http://kore-nordmann.de/blog/do_NOT_parse_using_regexp.html正規表現を使用して、構造ではなく単語を認識します。 –
私はそれが理にかなっていると思います。しかし、私はこの構造を認識するために何を使用するでしょうか? @DavidBrabant このフォームの入力を検証するために使用されます。 – Daniel
PCREはあなたが提案している方法ですか? – Daniel