У меня есть фрагмент из файла конфигурации, который мне нужен, чтобы сопоставить указанное содержимое строковых кавычек, но только когда они не закомментированы, вот мое текущее регулярное выражение:
(?<!=#)test\.this\.regex\s+\"(.*?)\"
Я чувствую, что это должно работать? Я прочитал это так:
(?<!=#)
посмотрите назад, чтобы убедиться, что ему не предшествует #
test\.this\.regex\s+\"(.*?)\"
соответствует test.this.regex "sup1"
Вот фрагмент конфигурации
test.this.regex "sup1" hi |sup1| # test.this.regex "sup3" hi |sup3|
# test.this.regex "sup2" do |sup2|
test.this.regex "sup2" do |sup2|
Но мое регулярное выражение соответствует всем 4 раза:
Match 1
1. sup1
Match 2
1. sup3
Match 3
1. sup2
Match 4
1. sup2
#
есть пробел, который вы не учли в своем регулярном выражении. - person Anirudh Ramanathan   schedule 17.05.2014(?<!...)
, а не(?<!=...)
. - person Casimir et Hippolyte   schedule 17.05.2014#
и строкой, которую я хочу сопоставить? Пробовал .* после#
и доtest
не работает - person bruchowski   schedule 17.05.2014