国庆期间有网友问我DEDE采集里标题怎么过滤"(1)"这样的()+里面数字或者其它的.那时在外面玩,就没帮他解决,今天突然想起,就动手帮他做了这个问题.
其实,这个问题对于会DEDE和正则表达式的人来说很简单,但是我就奇怪了,DEDE这么大的用户群,为什么就没一个人回答他呢,我知道在DEDE的QQ群里有好几个高手在.哎,人啊,有点本事出名了,就自命清高,不理人了.
我不是高手,我不会正则表达式,但是我是程序员,开发语言大致是相通的,所以我向来不拒绝网友的请求帮助,今晚,我花了两个小时,终于找出了结果,哎,有点丢人,对不起我的职业啊.
其实很简单,采集节点设置的"标题过滤规则"里写上这行代码就可以的: {dede:trim}(\\([0-9]*\\)){/dede:trim}
我这里说明一下原因
([0-9]*) 中[0-9]表示数字0-9,一位数字,[]外面的*号表示可以多个,也就可以过滤大于9的几位数字,如10,11,12......
开始时,我一直只写{dede:trim}([0-9]*){/dede:trim}这个代码,结果发现过滤后,标题的()还在,只是过滤了里面的数字
后来才想到,()是特殊字符,不会当成是字符来过滤,如果要过滤的话,就要加 \ 来进行转义
所以写成代码为: {dede:trim}(\([0-9]*\)){/dede:trim} 可是结果还是不行,和前面一样,还是有()留下来,没有过滤.
想了,测试了近一个小时,突然想到,可能在DEDE里会直接过滤一些字符,后来真发现了 \ 这个符号没有了,果然是被过滤了,那我就加两个 \ 试一下吧,过滤一个,那总会还留下一个吧. 测试一下,嘿嘿,成功了.
其实,真的很简单,我不会正则表达式,最后也是成功了啊,事情就是这样,多动手做做,总会成功,像别人说的,靠别人不行,一定得靠自己.
所以也希望那位网友以后和我一样,动手做做,有问题就网上找一下.
顺便发一下我为解决这个问题查找到的网上资料:
1:两篇关于常用的DEDE过滤表达式,本站的收藏:
Dedecms的过滤规则大全(极品收藏)http://www.busfly.cn/post/47.html
织梦dedecms正则表达式采集过滤标签列表(精品收藏) http://www.busfly.cn/post/46.html
2:关于正则表达式的文章
本站也有很多文章:http://www.busfly.cn/catalog.asp?tags=%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F
外站的文章:
深入浅出之正则表达式 [1] http://www.blueidea.com/tech/program/2006/3443.asp
深入浅出之正则表达式 [2] http://www.blueidea.com/tech/program/2006/3443_2.asp
深入浅出之正则表达式 [3] http://www.blueidea.com/tech/program/2006/3443_3.asp
3:用到的工具,
编写采集规则的好帮手—RegexBuddy,文章介绍及下载: http://bbs.dedecms.com/read.php?tid=13783
下载地址:http://www.cnfdc.com.cn/uploadfiles/RegexBuddy.zip
Tags: 织梦dede-CMS |
原创文章如转载,请注明:转载自:巴士飞扬-技术BLOG : http://www.busfly.net/
本文链接地址:http://www.busfly.net/post/170.html
如果你喜欢本文,请顶一下,支持我,你的支持是我继续发好文章的最大动力。谢谢。
好东西需要分享,快把本文发给你的朋友吧~!~