忍者ブログ
Well come to computer world of TFCRA!!!

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


  以前在无聊的时候,偶尔会从网上下载点恐怖小说寻求一下刺激。自从第一次下载阅读开始,就一直 有一件事令我感到非常的恶心:小说网站的站长为了让读者能够记住自己的网站地址,会在txt或者其他格式的文档里,重复不断的写进自己的网站域名和网站名称,我个人认为这就是在做广告。(当然了,也可能是站长为了防止自己辛苦收集的文字被别的网站轻易转载,而做的手脚),这里就以www.uutxt.com为例,请看下图:
去除小说垃圾信息(广告) 正则表达式
怎么样,是不是觉得特别恶心?

作为读者,看到文章里有这种东西,那是多么的影响心情啊……
因为我比较喜欢免费且免注册的下载网站,而这个uutxt正好符合我的喜好,所以我经常从这里下载小说看。不过就像刚才我说的,我觉得这种做法非常恶心,所以我要调教它一下……


废话不多说,现在就开始,让我们再来看这幅图:
去除小说垃圾信息(广告) 正则表达式
我们来寻找一下这些文字的规律:
  1. 最容易第一眼看到的,也是最直观的,字母有大小写,还有全角和半角字符。
  2. 字符的格式相对比较整齐。(我个人判断是使用某些自动化的程序完成的,处理文字的人只要设置好固定位置的字符范围,随机生成即可)
  3. 每一段的字符总长度都是一样的。
所以综上所述,我们就确定了基本的思路:使用正则表达式对其进行垃圾信息查找,并使用空字符进行替换。在这里,推荐一款正则表达式测试软件:RegEx Tester 它的使用非常简单,GUI上面只有三个方框,第一个用来输入正则表达式,第二个用来输入需要进行匹配的文本,第三个用来显示匹配结果。上面的图就是截取的匹配结果。

那么我们开始进行正则表达式书写,首先,我们先匹配字母形式的网址:
[UuUu]+[TtTt][XxXx][TtTt][\.\.\。][cCCc][OoOo][MmMm]
我们在图中可以看到,字母有大小写和全、半角,而那个点,也有半角、全角以及用句号代替,三种写法。所以使用上面的正则表达式进行匹配比较合适。为什么要如此花时间在这些英文字符上呢?因为这些垃圾信息的格式相对比较整齐,所以,只要准确的定位了这些英文字符,就能更简单的处理汉字字符了。


把从uutxt.com下载的小说txt打开,全选,粘贴到RegEx Tester的第二个方框中,复制上面的正则表达式到第一个方框中,按下<F5>,可以看到,所有的网址都已经匹配完毕:
匹配网址
网址匹配好以后,我们就可以开始继续观察,网址的字符串,和它前后的汉字之间,有一个空格。那么我们再试:
\s[UuUu]+[TtTt][XxXx][TtTt][\.\.\。][cCCc][OoOo][MmMm]\s
之后你会看到:

匹配空格加网址
感觉好像和上一幅图一样?其实字符串前后的空格已经被匹配上了,注意看首字母和Match的相对位置。

再进一步观察,字符串前面的空格前,有4个汉字,字符串后面的空格后面,有6个汉字。那么我们就再进一步:
.{4}\s[UuUu]+[TtTt][XxXx][TtTt][\.\.\。][cCCc][OoOo][MmMm]\s.{6}

这时候,就可以匹配到全部的垃圾信息,你可以看到和第一幅图一样的情况,这条正则表达式就完成了,接下来,我们只要把那些文字替换掉就好,也许你需要Regex Buddy这样的软件来完成替换工作。不过那已经不重要了,前面正则表达式的编写思路才是最重要的。
使用Regex Buddy替换垃圾信息广告
PR
Comment
name
title
color
mail
URL
comment
passward   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
Trackback


Tfcra_Weblog
design&photo by [Aloeswood Shrine / 紅蓮 椿] ■ powerd by [忍者BLOG]
忍者ブログ [PR]
フリーエリア
=======================
在这里搜索成人资源 =^_^=
アダルトリソース検索 =^_^=
Search Adult Resources Here: =======================
Translate this page to your language:
=======================
=======================

=======================
=======================
free counters =======================
カレンダー
12 2025/01 02
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
ブログ内検索
バーコード
最新記事