Я пытаюсь создать парсер, который сможет извлекать данные с помощью регулярных выражений.
Я хочу быть в состоянии соответствовать
Вот что у меня сейчас есть:
(\w+)\s+('|")([^\2\\]*(\\.[^\2\\]*)*)\2\s*;
Часть ([^\2\\]*(\\.[^\2\\]*)*)
взята из http://ad.hominem.org/log/2005/05/quoted_strings.php
К сожалению, у меня есть две проблемы с этим шаблоном.
Прежде всего, я хотел бы иметь возможность захватывать строки, которые не заключены в одинарные / двойные кавычки.
Наличие print "hello world";
работает, но print foobar;
не работает. Я не смог сделать обратную ссылку \2
необязательной в конце.
Кроме того, я не знаю, просто ли я заключил это регулярное выражение, но я не могу разобрать несколько экземпляров этого шаблона.
Если я попробую регулярное выражение с print 'hello'; print 'foobar';
, он просто вернет первую print 'hello';
часть.
Заранее спасибо за помощь.
Редактировать
Вот фрагмент того, что я пытаюсь проанализировать:
listen 80;
server_name domain.com *.domain.com;
rewrite ^ http://www.domain.com$request_uri? permanent;
Я пытаюсь запечатлеть каждое действие со своими параметрами. По сути, я не хочу разбирать файл конфигурации NGINX: http://wiki.nginx.org/FullExample