Блокнот ++ регулярное выражение - числа

0

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

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

102.

или же

12

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

beemspam
источник

Ответы:

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

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

Мэтт Чемпион
источник
Спасибо вам большое! Работает отлично! Это именно то, что я хотел! Спасибо. :)
beemspam
В случае Linux ( ) или Old Mac ( ) окончания строк \r\nмогут быть обобщены . Кроме того, похоже на окольный способ просто делать ...\r?\n?\n\r[.]?\.?
Раскол
@Schism Большое спасибо за комментарий, это очень веские аргументы. Если честно, я склонен забывать другие типы окончания строки из-за того, что я провожу большую часть своего времени в Windows. Кроме того, я не использовал в \.?основном, потому что я не понимал, что вы можете избежать полной остановки (я всегда просто делал это, используя [.])! Если вы захотите внести изменения, я буду рад их одобрить.
Мэтт Чемпион