Как я могу преобразовать это выражение формы Бэкуса-Наура в регулярное выражение (.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 само по себе запрещает повторение, но это то, что мне нужно.)

6
задан Daniel 9 May 2012 в 06:13
поделиться