Вы можете использовать
String regex = "(at \\d{2}:\\d{2}:\\d{2} CET \\D{3} \\D{3} \\d+ \\d{4} by \\D{6}).*\\R.*\\1";
^^^^^^^
См. regex demo .
.*\n.*
будет дополнительно соответствовать всей остальной части строки, в которой сопоставлен шаблон группы 1, затем последовательность символов разрыва строки (\R
), затем снова любые 0+ символов, кроме символов разрыва строки, а затем подстрока, которая точно такой же, как текст, включенный в группу 1.
Обратите внимание, что вы можете сопоставить первое at
как целое слово, используя \b
:
String regex = "\\b(at \\d{2}:\\d{2}:\\d{2} CET \\D{3} \\D{3} \\d+ \\d{4} by \\D{6}).*\\R.*\\1";
Я не думаю, что существует единственная ключевая команда для этого. Лучшее, которое можно сделать с энергией запаса, вероятно , я Ввожу Esc .
r Входят , в то время как на пробеле сделает это. Это - два нажатий клавиш.
Нет. Я теперь прочитал достаточно ответов, чтобы прийти к заключению, что нет такой команды.
Легкий ответ: Нажатие 'Enter', в то время как во вставке сделает это; но Вы правы, там oughtta быть ключом для него в командном режиме. Я задался вопросом, также.
, Так как у всех есть любимое обходное решение, я совместно использую мой. Предположение - то, что я сделаю что-либо , чтобы избежать необходимости достигать клавиши Esc.
ylprX..., где 'X' вставленный символ, который может даже быть новая строка .
Так, 'yl' является рывком на символе направо, 'p' = вставляют символ, 'r' является заменой тот символ; тогда Вы просто вводите новый символ. Это , насколько я очень не хочу использовать Escape.
(Который был 'l', как в "праве перемещения", BTW)
Вы можете разделить строки, если вы можете создать регулярное выражение для местоположения, чтобы добавить разделение. Например, если вы хотите разделить строки каждой точкой с запятой, вы можете использовать следующую замену:
% s /; / ^ v ^ m / g
для большего эффекта
Ответ Джеда очень полезен. Я хотел бы добавить, что мне нужна была «альтернатива control-V», то есть control-Q: % s /; / ^ q ^ m / g