Ulipad中的查找替换是支持正则式的,也许有人还不知道。下面是一个案例讲述了如何在Ulipad中进行正则式的查找和替换。 故事是这样的: 网友Joe问我一个问题,有没有可以支持正则替换的工具,我说,有啊,EditPlus和Ulipad都可以。Joe是因为从论坛里直接拷贝了一些文本,但是有一些无用的信息想去掉,形式为: UID [略] * 个人空间 可以基本认为在"UID"和"* 当前离线"之间的内容都是无用的,可以删除。但是因为这样的地方很多,手工处理很麻烦,于是Joe就想到使用工具来完成这件工作。于是我让Joe把内容存成文本发给我,我使用Ulipad进行了简单地加工。具体的文本内容就不贴了,很大,只是说明我是如何做的。 首先是验证正则式如何写。直接写还是有难度,于是先打开Tools->Live Regular Expression,这是一个动态测试正则式的工具(不知道有几个人知道并用过)? 可以看到输入的正则式,同时右侧设置了"Multi Line"和"Dot All"标志。匹配上的结果在右下角,内容比较多,拖动可以看到完整的,符合我们的要求。 然后点"Create",生成最终的正则式,结果为: re.compile(r"UID.+?/* 当前离线", re.S|re.M) 然后按Ctrl+H打开查找替换面板: 这里输入的是 "(?ms)UID.+?/* 当前离线",前面"(?ms)"是在正则式中设置re.M和re.S标志用的。注意,这里选中了后面的"Regular Expression"标志,因此这时就是进行正则式的处理了。如果你按下箭头(查找框右边的绿色向下的箭头)则可以先进行查找。上图的绿色文字就是找到的结果,看一看没问题。然后点"Replace all"进行全部替换就好了。 后来发现还有一些多的空行,于是又写了一个替换,把"/s*/r/n(?:/s*/r/n)+"替换为"/r/n/r/n"即可。它的作用是把多个空行(每个空行前面可以有空格)替换成一个空格。 经过上面的处理,文本就处理好了。 |
[ZZ]使用Ulipad进行正则替换处理
最新推荐文章于 2021-05-25 20:24:15 发布
使用Ulipad进行正则替换处理