2016-09-02 2 views
1

Я пытаюсь найти способ заменить квадратные скобки на апострофы для некоторых файлов субтитров, но только для случаев, когда эти квадратные скобки не содержат целого предложения, имеющего квадратные скобки в начале & конец строки.Regex в Notepad ++ с отрицательным Lookahead с оператором вопросительных знаков

Эти линии будут иметь квадратные скобки переоделся в апострофы:

[que] vão levar [vocês] 
ao [limite]. 

Хотя это не так:

[Vamos começar] 
[com algo simples.] 

я придумал следующее регулярное выражение команды

(?!^\[.*?\]$)(\[.*?\]) 

, который использует чтобы найти строки, начинающиеся с [ и заканчивая w с номером ], при использовании внутри вопросительного знака символ ? в качестве оператора для предотвращения выбора строки с дополнительными квадратными скобками.

К сожалению, это не работает. Что я здесь делаю неправильно?

+0

Если мой ответ работал для вас, пожалуйста, рассмотреть тиканье серой метки слева от моего ответа, чтобы принять его. –

ответ

4

Вы можете соответствовать строки, которые начинаются с [ и заканчиваются ] и не имеют [ и ] и захватить в 1-й группе, и только соответствуют другим [ и ] и замену с использованием условного рисунка замены:

Найти: ^(\[[^][\r\n]*\])$|[][]
Заменить: (?1$1:')

детали шаблон для поиска:

  • ^ - начало строки
  • (\[[^][\r\n]*\]) - Группа 1 захватывая [, а затем 0 или больше символов, кроме ], [, \r или \n, а затем ] на ...
  • $ - конец от линии
  • | - или
  • [][] - a [ или ]

детали Замена модели:

  • (?1 - ли группа 1 матч?Если да, то
    • $1 - использовать группы 1 содержание
    • : - или
    • ' - один апостроф
  • ) - конец условного рисунка.

enter image description here

+1

Это действительно так! Спасибо! С другой стороны, была ли причина для внутренней?? Символ Mark Mark не работает как оператор внутри блока Negative Lookahead? – mboufleur

+0

Ну, это снова очень частый случай, когда нам нужно сопоставлять и захватывать то, что нужно, и соответствовать только тем, что нам не нужно. См. [** «Самый большой трюк с регулярным выражением» **) (http://www.rexegg.com/regex-best-trick.html#thetrick). –

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