除了a-zA-Z0-9之外,如何从notepad ++文件中删除所有内容?

时间:2014-09-06 22:15:30

标签: regex notepad++

我一遍又一遍地尝试用一堆奇怪的东西替换一个文件,只找到可读的字符..

这是文件的一个例子

+­«›é¦$6ðbç›4;r6O–0µ<hiñÅÙuµN%\$Õnever in a million yearsþÈWèÁƧÀ[‰võ³°œ»ê"V5n¤ÉÂT‡«

看到“hi”这个词?它周围没有“空间”,因此如果可能,它应该被删除,如果不是它的确定!

但是看到“永远不会一百万”这个词 - 那应该就在那里......其他一切都应该被删除。

如何?

1 个答案:

答案 0 :(得分:0)

使用正则表达式模式,找到:

[^a-zA-Z0-9 ]|((?<![a-zA-Z0-9 ])[a-zA-Z0-9 ]{1,3}(?![a-zA-Z0-9 ]))

替换为零。

根据您的样本,生成的文本将是:never in a million years

现在注意到这不是那么简单,你必须设置一个阈值,你将“视为一个单词”。 例如,在上面的正则表达式中,将删除长度低于4个字符的所有序列。 (这就是删除r6O的原因。)因此,您可以通过更改{1,3}部分中的第二个数字来调整正则表达式以满足您的需求。例如{1,4}将删除每个包含4个或更少字符的序列,{1, 5}将删除具有5个或更少字符的序列,依此类推。

试试that regex in an online tool,您可以更轻松地对其进行微调。