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

В блокноте ++ у меня есть такая строка:

102.

или же

12

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

1 ответ1

0

Я не на 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 : пустым, заключается просто в том, что мы не хотим, чтобы что-либо возвращалось в строку, которую мы удаляем.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .