RegEx / теория компьютера - построить regEx в алфавитном порядке - PullRequest
0 голосов
/ 06 октября 2011

В моих грамматиках - на уроке компьютерной теории, я пытаюсь создать регулярное выражение в алфавитном порядке (az)

l = {a, b, x, y, z, i, o, u, e, c}

Это то, что я придумал, используя замыкание Клини

aeiou(x*, y*, z*, i*, o*, u* e*) 

С клинином close * это ноль или более, что должно заставить abceioxyz?

Мы не изучали этот тип формы

[^abc]

Я на правильном пути?

Ответы [ 2 ]

4 голосов
/ 06 октября 2011

Насколько я понимаю, вы хотите захватывать строки в следующем формате:

  • Строка содержит любое количество a, затем любое число b, затем любое число c и т. Д. ...

Давайте рассмотрим производный пример: мы хотим, чтобы все строки состояли из 0 и 1 и имели все 0 до 1: поэтому мы можем просто написать 0*1*. Теперь попробуйте адаптировать шаблон для более сложных алфавитов.

0 голосов
/ 06 октября 2011

слово должно быть в алфавитном порядке, поэтому, если оно содержит какие-либо буквы, они обязательно должны быть впереди. аналогично, если он содержит какие-либо буквы b, они должны следовать за буквами a, и ничто не может встать между буквами a и b

поэтому имеем: a*b*...

и поэтому возникает шаблон.

...