2012-05-15 4 views
0

У меня есть файл conf, который загружает плагины. Мне нужно разобрать и соответствует определенный плагин в каталоге, но не других в том же каталоге:Regex, соответствующий dll, но не каталог

plugin: c:\program files\application\abc\abc.dll 
plugin: c:\program files\application\abc\xyz.dll 

Мне нужно, чтобы соответствовать abc.dll только, но из-за того, что БАТ также во имя дир , он соответствует обе строки, но я не хочу xyz.dll

Так что я пробовал: ^ плагин: (. *) (abc.dll)

Так^= начало строки, то плагин, то *. ничего, затем abc escape dot dll.

Но он, похоже, не работает. Может ли кто-нибудь помочь?

+0

Что вы используете? Shell script, java и т. Д. –

+0

будет использовать boost :: regex, но мне нужно узнать больше, я думаю :) – smurff1975

+0

Почему вы говорите '^ плагин: (. *) (Abc.dll)' не работает ? Он соответствует только 'plugin: c: \ program files \ application \ abc \ abc.dll' – sln

ответ

1

Проблема в dot в abc.dll. Попытайтесь убежать от него, так что это не дикая карта.

^plugin:(.*)(abc\.dll) 
+0

Его регулярное выражение'^plugin: (. *) (Abc.dll) 'и ваш соответствует строке с abc.dll – sln

0

Вы хотели бы использовать это регулярное выражение:

([a-zA-Z0-9-_]*\.dll) 

Здесь example

+0

или'^плагин: (. *) ([^ \.] + \. dll) ' – inhan

+0

спасибо, но это соответствует второму правилу? – smurff1975

+0

Это соответствует ** abc.dll ** и ** xyz.dll ** во второй группе в скобках. – inhan

Смежные вопросы