2013-09-17 1 views
2

У меня есть примеры в текст документа строки следующим образом:регулярное выражение, чтобы соответствовать строку, которая может продлить на несколько строк

set ( blah blah blah) 

и

set (blahlblah 
blahlbal) 

и

set (blah 
blah 
blah 
blah 
blah) 

Я использую text mate и хотите их найти и ничего не заменить

Я получил это, чтобы работать с одной строкой, но в тупике, как это сделать на нескольких строках. Я попытался это:

SET \(.*\n.*\) 

ответ

2

Попробуйте проще:

set \([^)]+\) 

Если набор не содержит вложенные наборы, которые должны работать.

+0

спасибо, что работало, будет принимать после того, как время позволяет мне – Joelio

+0

Существует также случай, когда набор содержит что-то такое, как строковый литерал, и регулярное выражение может потерпеть неудачу из-за строкового литерала, содержащего ')'. Но тогда вопрос не упоминает об этом, так что это не имеет большого значения. – nhahtdh

0

Я понятие не имею, если TextMate может сделать это

^\s*set\s*\([\S\s]*\)[^)]*$ 

-------------------------- 
^ 
\s* set \s* 
\(
    [\S\s]* 
\) 
[^)]* 
$ 
Смежные вопросы