705 字

几个正则表达式

计算机 - 正则表达式; 正则表达式;

网络上的小说总是格式比较糟糕,需要进行整理才看起来舒服一些。

整理的过程中也遇到一些问题,我用的是 VS2005、C#,C# 对正则的支持很到位,甚至包含一些其它语言如 Perl 所没有的特殊功能,下面是相关表达式:

删除空行

[\s ]*(?=\r\n),要注意这个表达式中包含了一个全角的空格。在 Editplus 中还推荐了另一种写法,不过没有采用,是这样的:^[ \t]*\n(注意 \t 前有一个空格,当然愿意的话也可以和第一种一样包含一个全角空格),这种写法用C#的正则表达式测试器来测试的时候并不有效。而前一种写法在 Editplus 中则好像不能够支持,另外 Editplus 好像对?=、?!、?<=、?<!这几种高级部分内容的支持也不存在。

当然Editplus的最大好处之一就是能够同时替换打开的多个文件,这点真的比较有用。

双引号问题

在小说中经常由于排版原因会出现““这样两个连续的起始直角双引号,这时候要注意表达式的写法,如果直接用(“.+)“这样写法会导致匹配出现错误,本来想非贪婪是否能够解决,似乎没有什么作用,只好取个巧,用下面的表达式完成:(“[^“]+)“,这个表达式 Editplus 也支持,所以效果还是不错的。

此外,Frontpage2003 对于正则也提供简单支持,只是它的语法与传统的正则语法有些出入,提供的功能也比较简单,但对于简单的工作它还是有很大作用的,配合它提供的“html代码格式重新设置”功能,可以简化许多通过程序也比较不容易完成的任务。

Notepad++

用 Notepad++ 打开(注:^ 代表行首,$ 代表行尾)

  • 去除行尾空格和空白行:按CTRL+H选择正则表达式 - 查找目标:\s+$ 替换为空;
  • 去除行首空格:按CTRL+H选择正则表达式 - 查找目标:^\s+替换为空;
  • 空行:\r\n^\r\n,或者安装 TextFX 插件;