Есть ли алгоритм или инструмент для преобразования регулярной грамматики в регулярное выражение?Как преобразовать регулярную грамматику в регулярное выражение?
6
A
ответ
1
1
Алгоритм довольно прост, если вы можете вычислить автомат из своего обычного выражения. Как только у вас будет свой автомат. Например, для (aa*b|c)
, автомат будет (стрелки идти направо):
a
/\
a \/b
-> 0 ---> 1 ---> 2 ->
\___________/
c
Тогда просто «перечислить» ваши переходы как правила. Ниже рассмотрим, что 0, 1 и 2 являются нетерминальными символами, и, конечно, a, b и c являются токенами.
0: a1 | c2
1: a1 | b2
2: epsilon
или, если вы не хотите пустые правые стороны.
0: a1 | c
1: a1 | b
И, конечно же, путь в другом направлении обеспечивает одно средство для преобразования регулярной грамматики в автомат, следовательно, рациональное выражение.
Смежные вопросы
- 1. оставил регулярную грамматику NFA
- 2. Как преобразовать URL в регулярное выражение заявление
- 3. Как преобразовать грамматику в нисходящую оформленную грамматику
- 4. Как преобразовать регулярное выражение в выражение extglob?
- 5. Как преобразовать это регулярное выражение PHP в регулярное выражение Javascript?
- 6. Как преобразовать это регулярное выражение
- 7. Как мне преобразовать регулярное выражение?
- 8. Как узнать следующую группу строк, используя грамматику или регулярное выражение?
- 9. Можно ли преобразовать регулярное выражение perl в регулярное выражение POSIX?
- 10. Как преобразовать регулярное выражение Php в js
- 11. Как преобразовать строку в регулярное выражение
- 12. Как преобразовать регулярное выражение в фильтр grok?
- 13. Как преобразовать регулярное выражение в конечный автомат?
- 14. Как преобразовать регулярное выражение .Net в php
- 15. Как преобразовать это регулярное выражение в Python
- 16. Как преобразовать регулярное выражение match.Value в integer?
- 17. Как преобразовать регулярное выражение Perl в Python?
- 18. Как преобразовать регулярное выражение в NFA?
- 19. Преобразования регулярных выражений в регулярную грамматике/правая линейную грамматику
- 20. Инструмент поиска, который использует грамматику, а не регулярное выражение?
- 21. преобразовать это регулярное выражение php в javascript
- 22. Как преобразовать эту грамматику в LR (1)?
- 23. Как преобразовать эту грамматику в LL (1)?
- 24. Как преобразовать грамматику EBNF в Javacc?
- 25. Python: преобразовать строку формата в регулярное выражение
- 26. Преобразовать вычисляемый столбец в регулярную колонку
- 27. Регулярное выражение в Java Vs регулярное выражение в скрипте оболочки
- 28. Преобразовать регулярное выражение используется в JavaScript
- 29. Можно ли преобразовать любую грамматику в грамматику приоритета оператора?
- 30. Как преобразовать расширенную грамматику Backus Naur в ее нормальное представление?
Вы можете посмотреть http://www.regexmagic.com/, если легко создать выражение - ваша цель. – Aphelion
Моя цель - преобразовать обычный грамматик в DFA. Наконец, я нашел отличный инструмент: http://www.jflap.org/jflaptmp/. – dalibocai
JFLAP выглядит очень красиво. Спасибо за ссылку. –