У меня возникают проблемы с синтаксисом регулярных выражений.Соответствующий образец без комментариев в eclipse
Я хочу сопоставить все вхождения определенного слова, за которым следует число, но исключать строки, которые прокомментированы.
Комментарии являются (несколько) #
или ##
или ###
...
Примеры:
#This is a comment <- no match
#This is a comment myword 8 <- no match
my $var = 'myword 12'; <- match
my $var2 = 'myword'; <- no match
До сих пор у меня есть
оригинальная картина:^[^(\#+)](.*?)(myword \d+)(.*?)$
новый шаблон:^([^\#]*?)(myword\s+\d+)(.*?)$
Который должен соответствовать строкам, которые не начинаются с одного или более #
, за которым следует что-то, затем комбинация слов, которую я ищу, и, наконец, что-то.
Возможно, было бы неплохо соответствовать также части строк, если комментарий не начинается в начале строки.
my $var3 = 'test';#myword 8 <- no match
Что я делаю неправильно?
Я хочу использовать его в поиске файла Eclipse (с эпическим модулем Perl).
Edit: Новый образец, который я получил не делает возвращение ложных матчей, но он возвращает несколько строку, которая включает в себя myword
и несколько линий до этой строки. И я не уверен, что он вернет все матчи.
Имеет смысл ... +1 – DVK
Вы правы с неправильным использованием '[]'. Я не думаю, что в моем случае есть использование # в строке, где это ** не ** комментарий. И даже если бы они были, я мог бы пренебречь этими случаями. – Pit