从Notepad ++

时间:2017-05-17 10:01:21

标签: regex notepad++ notepad regex-group

是否可以删除记事本中的每一行++ Not Containing

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

,   .   '

就像那样:

enter image description here

删除非ascii

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

删除号码

.*[0-9]+.*

文字:

example
example'
example,
example.


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

3 个答案:

答案 0 :(得分:3)

您可以使用

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

正则表达式匹配任何非空行(.+),它不仅包含ASCII字母,,.'。最后的\R?与可选的换行符匹配。

<强>详情:

  • ^ - 字符串的开头
  • (?![a-zA-Z,.']+$) - 如果匹配模式不匹配则导致匹配失败的负向前瞻:[a-zA-Z,.']+ - 直到行尾的1个或多个ASCII字母,逗号,句号或单引号({ {1}})
  • $ - 除了换行符之外的1个字符
  • .+ - 行尾
  • $ - 可选的换行符(序列)

enter image description here

答案 1 :(得分:2)

你可以像这样删除它们:

找到:^.*[^a-zA-Z.,'].*$
替换为:``

说明:

  • .*任何文字
  • 任何不需要的字符的否定字符类[^...]
  • 然后再次.*获取更多文字
  • 您需要将其包装到^...$以匹配整行

如果要删除换行符,则可以使用\r?\n代替$符号。即:^.*[^a-zA-Z.,'].*\r?\n

答案 2 :(得分:1)

尝试替换所有这些匹配

^.+?[^a-zA-Z,.'\r\n]+(.|\r?\n)