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]. *