Регулярные выражения Notepad++

Я попытался найти его и поэкспериментировать, но не смог понять.

в notepad++ у меня есть строка вида:

102.

или

12

и я хотел бы удалить всю строку (так что мне понадобится nr, я думаю) и все эти виды строк, как я могу это сделать? (Я не знаю, если это один десятичный, два десятичных или три десятичных или если он имеет точку после него или нет).

22
задан beemspam
17.02.2023 3:15 Количество просмотров материала 3558
Распечатать страницу

1 ответ

я не на 100% понимаю, каковы ваши требования (то есть, каково возможное содержимое строк, которые нужно удалить), но я сделал регулярное выражение, исходящее из предположения, что строка начинается с 1 и 3 чисел, а затем необязательной полной остановки и без чего-либо еще на линии (начало или конец).

найти : ^\d{1,3}\.?\r?\n?

заменить : (пробел)

протестировано на следующем наборе данных

102.
102
12
12
1.
1
9999
ab21.
8442.

что оставляет позади

9999
ab21.
8442.

объяснение

^ - специальный символ, соответствующий только началу строки. Это просто чтобы убедиться, что картина не просто на конце длинной линии.

\d используется для сопоставления с любым числовым значением (то есть 0-9).

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

\. используется для соответствия символу точки. . - специальный символ в регулярном выражении, используемый для соответствия любому символу (кроме новой строки по умолчанию, хотя в Notepad++ есть опция для изменения этого поведения). Из-за этого нам нужно избежать его обратной косой чертой, чтобы убедиться, что он берется как . "персонаж", а не . "в соответствие узор."

? используется для изменения последнего утверждения, аналогичные {1,3}, но на этот раз он используется, чтобы сказать, что предыдущее утверждение ([.]) не является обязательным (формально это матч между 0 и 1 раз, но конечный результат тот же).

\r?\n? используется, чтобы соответствовать новой строке, как вы уже упоминали. Регулярное выражение будет работать без этого, но оно не удалит строку, только очистит ее (оставив пустую строку позади). Сделав оба \r и \n необязательно, это станет переносимым через Windows, Linux и Mac.

наконец, причина, по которой мы оставляем Replace with : поле пустое просто из-за того, что мы не хотим, чтобы что-то возвращалось в строку, которую мы удаляем.

надеюсь, это то, что вы искали и, если нет, то очков вы в правильном направлении.

0
отвечен Matt Champion 2023-02-18 11:03

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх