Проблема соответствия тегов регулярных выражений в Vim / Perl - PullRequest
1 голос
/ 30 мая 2011

У меня есть данные, которые выглядят так:

[Shift]);[Ctrl][Ctrl+S][Left mouse-click][Backspace][Ctrl]

Я хочу найти все [. *] теги, в которых есть слово mouse .Имея в виду ненадежные спецификаторы, я попробовал это в Vim : \[.\{-}mouse.\{-}\], но это дало этот результат,

[Shift]);[Ctrl][Ctrl+S][Left mouse-click]

Вместо того, чтобы просто желать,

[Left mouse-click]

Есть идеи?В конечном счете, мне нужен и этот шаблон в синтаксисе Perl, поэтому, если у кого-то есть решение на Perl, оно также будет оценено.

Ответы [ 2 ]

4 голосов
/ 30 мая 2011
\[[^]]*mouse[^[]*\]

То есть, соответствовать буквальной открывающей скобке, затем любому количеству символов, которые не являются закрывающими скобками, затем «мыши», затем любому количеству не открывающих скобок и, наконец, буквальной закрывающей скобке.Должно быть таким же в Perl.

3 голосов
/ 30 мая 2011

Вы можете использовать следующее регулярное выражение:

\[[^\]]*mouse.*?\]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...