Regex: удалить строки, не начинающиеся с цифры
Я столкнулся с этой проблемой с помощью чит-листа RegEx, пытаясь понять, как это сделать, но я сдаюсь... У меня этот длинный файл открыт в Notepad ++ и хотел бы удалить все строки, которые не начинайте с цифры (0..9). Я бы использовал функцию Find/Replace для N ++. Я только упоминаю об этом, так как не уверен, что реализация Regex - это N ++, использующая... Спасибо
Пример. Из следующего текста:
1hello
foo
2world
bar
3!
Я хотел бы извлечь
1hello
2world
3!
не
1hello
2world
3!
выполнив поиск/замену в регулярном выражении.
Ответы
Ответ 1
Вы можете очистить эту строку с помощью ^[^0-9].*
, но она оставит пустые строки.
Notepad ++ использует scintilla, а также использует его механизм regex для соответствия.
\ r и \n никогда не сопоставляются, поскольку в Scintilla, поиск регулярных выражений производятся линии на линию (лишены конец строки).
http://www.scintilla.org/SciTERegEx.html
Чтобы очистить эти пустые строки, выберите способ только расширенный режим и замените \n\n на\n, если вы в режиме Windows меняете \r\n\r\n на\r\n
Ответ 2
[^0-9]
- это регулярное выражение, которое соответствует почти всему, кроме цифр. Если вы скажете ^[^0-9]
, вы "привязываете" его к началу строки, в большинстве систем регулярных выражений. Если вы хотите включить остальную часть строки, используйте ^[^0-9].+
.
Ответ 3
^[^\d].*
обозначает целую строку, первый символ которой не является цифрой. Проверьте, нет ли белых пробелов перед цифрами. В противном случае вам придется использовать другое выражение.
UPDATE:
Вам нужно будет выполнить два шага. Сначала запустите строки, которые не начинаются с цифры. Затем удалите пустые строки в расширенном режиме.
Ответ 4
Можно также использовать технику закладки в Notepad ++. Я начал извлекать пользу из этой функции (давно присутствующей, но только недавно сделанной несколько более заметной в пользовательском интерфейсе) не так давно.
Просто поднимите диалог поиска, введите regex для строк, не начинающихся с цифры ^\D.*$
, и выберите "Отметить все". Это поместит синие круги, например, мраморы, в левый желоб - это строковые закладки. Затем просто выберите из главного меню Поиск → Вкладка → Удалить закладки.
Закладки классные, вы можете извлечь эти строки, просто выбрав, чтобы скопировать закладки, открыв новый документ и вставив туда строки. Иногда я использую этот метод при просмотре файлов журнала.
Ответ 5
Я не уверен, что вы спрашиваете. но reg exp для нахождения строк с цифрой в начале будет
^\D. *
вы можете удалить все строки, соответствующие указанному выше, или поочередно сохранить все строки, соответствующие этому выражению:
^ [^\D]. *