2017-05-17 91 views
4

是否可以删除所有线在记事本+ +不包含在记事本中,从行中删除所有数字+符号+

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-- 
[email protected] 
example" 
+0

http://stackoverflow.com/questions/8264391/notepad-inverse-regex-replace-all-but-string –

+0

@WiktorStribiżew,我想删除所有包含字母+数字的行,我只需要**字母** + **,'。**行 – moon93

回答

3

您可以使用

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

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

详细

  • ^ - 失败,如果它的模式不匹配,匹配负前瞻 - 一个字符串
  • (?![a-zA-Z,.']+$)开始: - 1个或多个ASCII字母,逗号,句号[a-zA-Z,.']+或单行至行尾($
  • .+ - 1+字符以外的换行符char
  • $ - 线
  • \R?的结束 - 一个可选的换行字符(序列)

enter image description here

+0

顺便说一句,[这里是一个正则表达式演示](https://regex101.com/r/nh6OMn/) 2)。 –

+0

非常感谢您的帮助:) – moon93

2

您可以像这样删除:

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

说明:

  • .*任何文本
  • 的否定字符类[^...]任何不必要的字符
  • 然后再.*更多的任意文本
  • 你需要将它包装成^...$整个线路符合

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

+0

谢谢先生,帮助我^^ – moon93

+0

在Notepad ++中,否定字符类匹配换行符(与Vim不同)。另外,如果在末尾添加'\ r?\ n',则不会删除文档末尾与条件匹配的最后一行。 –

+0

因此,'^。* [^ a-zA-Z。,']。* $ \ R?'必须更好,否则字符类后面的'$'会阻止匹配换行符。然后可选的'\ R'应该确保它可以删除最后一行。 –

1

尝试更换所有的这场比赛

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