Regex для инвертирования поиска в Notepad++

У меня есть строка

2012-02-19 00:11:12,128|DEBUG|Thread-1|@@@ Time taken is 18 ms 

Ниже регулярное выражение позволяет мне искать 18 ms

\d\d\s[m][s]

Что я хочу сделать, это поиск строки до 18 ms в Notepad++, а затем удалите его. Так что из тысяч строк, которые я имею, я могу просто извлечь тайминги.

Кроме того, мне нужно упомянутое выше регулярное выражение для работы с таймингами, которые состоят из 3 и 2 цифр. Например, он должен иметь возможность искать 18 ms так же как 999 ms,

Пожалуйста помоги.

3 ответа

Решение

Кроме того, мне нужно упомянутое выше регулярное выражение для работы с таймингами, которые состоят из 3 и 2 цифр.

.*?(?=\d{2,3}\sms\b)

Используйте приведенное выше регулярное выражение, а затем замените совпадение пустой строкой.

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

^.*(?=\d{2,3}\sms\s*$)

Если у вас есть текст после 18 ms, вам нужно использовать границу слова\b:

\b позволяет выполнять поиск "только целых слов" с помощью регулярного выражения в форме \bword\b

^.*(?=\d{2,3}\sms\b)

Посмотреть демо

{2,3} является ограничительным квантификатором, который позволяет вам сопоставить 2 или 3 предшествующего подшаблона.

Существует дополнительный квантификатор, который позволяет указать, сколько раз токен может повторяться. Синтаксис {min,max}где min - ноль или положительное целое число, указывающее минимальное количество совпадений, и max целое число равно или больше, чем min с указанием максимального количества совпадений. Если запятая присутствует, но max опущено, максимальное количество совпадений бесконечно.

Вы можете заменить на пустую строку и 18 ms останется на линии.

Обратите внимание, что вы можете использовать \d+ разрешить сопоставление 1 или более цифр (без ограничения числа цифр).

Примечание 2: если ваш номер является первым из многих в строке, вам нужно использовать ленивое соответствие, то есть использовать .*? вместо .* в начале картины.

You can use capturing group:

Найти:

^.*(\d{2,}\s[m][s])$

Заменить:

\1
Другие вопросы по тегам