【问题标题】:Remove all numbers + symbols from line in Notepad++从记事本++中的行中删除所有数字+符号
【发布时间】:2017-10-16 17:25:41
【问题描述】:

是否可以删除notepad++ 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

,   .   '

像这样:

删除非 ascii

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

删除号码

.*[0-9]+.*

文字:

example
example'
example,
example.


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

【问题讨论】:

标签: regex notepad++ notepad regex-group


【解决方案1】:

你可以使用

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

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

详情

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

【讨论】:

  • 非常感谢您帮助我:)
【解决方案2】:

您可以像这样删除它们:

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

解释:

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

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

【讨论】:

  • 感谢先生帮助我^^
  • 在 Notepad++ 中,否定字符类匹配换行符(与 Vim 不同)。另外,如果您在末尾添加\r?\n,则不会删除文档末尾符合条件的最后一行。
  • 那么,^.*[^a-zA-Z.,'].*$\R? 一定更好,因为在否定字符类之后的$ 可以防止匹配换行符。然后可选的\R 应该确保它也可以删除最后一行。
【解决方案3】:

尝试替换所有匹配项

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-01
    • 2016-07-06
    • 2015-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-07
    • 2014-09-10
    相关资源
    最近更新 更多