![Объяснение](https://rvso.com/image/1417415/%D0%9E%D0%B1%D1%8A%D1%8F%D1%81%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5.png)
Я пытался это найти и поэкспериментировать, но не смог понять.
В Notepad++ у меня есть такая строка:
102.
или
12
и я хотел бы удалить всю строку (поэтому мне, я полагаю, понадобится \n\r) и все подобные строки, как я могу это сделать? (Я не знаю, является ли это однозначным, двузначным или трехзначным знаком, и есть ли после него точка или нет).
решение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 :
поле пустым, заключается в том, что мы не хотим, чтобы в удаляемой нами строке что-либо возвращалось.
Надеюсь, это то, что вы искали, а если нет, то это укажет вам правильное направление.