Удалить все цифры + символы из строки в Notepad++

Можно ли удалить каждую строку в блокноте ++, не содержащую

a   b   c   d   e   f   g   h   i   j   k   l   m
n   o   p   q   r   s   t   u   v   w   x   y   z

A   B   C   D   E   F   G   H   I   J   K   L   M
N   O   P   Q   R   S   T   U   V   W   X   Y   Z

,   .   '

Вот так:

введите здесь описание изображения

Удалить не-ASCII

.*[^\x00-\x7F]+.*

Удалить номера

.*[0-9]+.*

Текст:

example
example'
example,
example.


example123
éxample è
[example/+
example'/é,
example,*
exa'mple--
example@
example"

person moon93    schedule 17.05.2017    source источник
comment
stackoverflow.com/questions/8264391 /   -  person Harsha W    schedule 17.05.2017
comment
@WiktorStribiżew, я хочу удалить все строки, содержащие буквы и цифры, я хочу только буквы + , ' . в строках   -  person moon93    schedule 17.05.2017


Ответы (3)


Вы можете использовать

^(?![a-zA-Z,.']+$).+$\R?

Регулярное выражение соответствует любой непустой строке (.+), которая состоит не только из букв ASCII, ,, . или '. \R? в конце соответствует необязательному разрыву строки.

Подробности:

  • ^ - начало строки
  • (?![a-zA-Z,.']+$) - отрицательный просмотр вперед, который не соответствует, если его шаблон не соответствует: [a-zA-Z,.']+ - 1 или более букв ASCII, запятая, точка или одинарная кавычка до конца строки ($)
  • .+ - 1+ символов, кроме символа разрыва строки
  • $ - конец строки
  • \R? - необязательный символ разрыва строки (последовательность)

введите здесь описание изображения

person Wiktor Stribiżew    schedule 17.05.2017
comment
Большое спасибо за помощь мне :) - person moon93; 17.05.2017

Вы можете удалить их следующим образом:

Найдите что: ^.*[^a-zA-Z.,'].*$
Замените на: ``

Объяснение:

  • .* для любого текста
  • отрицательный класс символов [^...] для любого нежелательного символа
  • затем снова .* для любого текста
  • Вам нужно обернуть его в ^...$, чтобы он соответствовал всей строке

Если вы хотите удалить символы перевода строки, вы можете использовать \r?\n вместо знака $. То есть: ^.*[^a-zA-Z.,'].*\r?\n

person Tamas Rev    schedule 17.05.2017
comment
Спасибо, сэр, за помощь ^^ - person moon93; 17.05.2017
comment
В Notepad++ инвертированные классы символов соответствуют разрывам строк (в отличие от Vim). Кроме того, если вы добавите \r?\n в конце, последняя строка в конце документа, соответствующая критериям, не будет удалена. - person Wiktor Stribiżew; 17.05.2017
comment
Итак, тогда ^.*[^a-zA-Z.,'].*$\R? должно быть лучше, потому что $ после инвертированного класса символов предотвращает сопоставление разрывов строк. Затем необязательный \R должен убедиться, что он также может удалить последнюю строку. - person Tamas Rev; 17.05.2017

Попробуйте заменить весь этот матч

^.+?[^a-zA-Z,.'\r\n]+(.|\r?\n)
person Fei Xia    schedule 17.05.2017