Найдите все шаблоны, соответствующие регулярному выражению, с помощью редактора Kate.

Я часто использую редактор Kate. В Kate можно находить закономерности с помощью регулярных выражений. Например, выражение \d{3} найдет все вхождения трех последовательных цифр в следующем тексте:

asdfsdf 234 dffd 234 f
d 182 sdsdas 182 sfdds
fdsfk 324 d 890 dfsdfd

Можно ли как-то извлечь совпадающие строки? Или просто сказал: как я могу получить следующие числа только с помощью Кейт? Возможно ли это простым способом или, возможно, с помощью плагина? Я знаю, что мог бы, например, использовать метод pythons re.findall(), но это не то, что я хочу.

234
234
182
182
324
890

person Ohumeronen    schedule 07.07.2016    source источник
comment
Замените \d{3} на $0\n, а затем (\d{3})|. на $1   -  person Wiktor Stribiżew    schedule 07.07.2016
comment
Это дает мне много строк, таких как $1$1$1$1$1$1 я что-то пропустил?   -  person Ohumeronen    schedule 07.07.2016
comment
Может быть, обратные ссылки записываются как \1?   -  person Wiktor Stribiżew    schedule 07.07.2016
comment
Хорошо, ты прав. Это работает, спасибо! Не могли бы вы объяснить мне вторую замену? Что значит |. делать?   -  person Ohumeronen    schedule 07.07.2016


Ответы (1)


Мой двухэтапный подход состоит из двух шагов:

  • Добавьте новую строку после 3 цифр с заменой (\d{3}) --> \1\n (где \1 относится к захваченному значению), а затем

  • Удалите любой символ, который не является отправной точкой для трех цифр, и повторно вставьте 3 цифры, захваченные с помощью группы захвата, с заменой (\d{3})|. --> \1.

Шаблон (\d{3})|. соответствует и захватывает 3 цифры ИЛИ просто соответствует любому символу, кроме новой строки, а \1 является обратной ссылкой на значение, захваченное с помощью (\d{3}).

Могут появиться пустые строки, но обычно их можно удалить с помощью встроенных функций.

person Wiktor Stribiżew    schedule 07.07.2016
comment
Спасибо за объяснение. Я обновил ваш пост, так как в Кейт он равен \1, а не \0. - person Ohumeronen; 07.07.2016