正则表达式的学习
最近在做一些功能的时候需要去过滤掉文字中的标签以及找出某些特定的字符串,首先想到了正则表达式,但是呢,我那么懒…以前大部分都直接百度这个正则表达式怎么写,那个正则表达式怎么写,心想有现成的还去折腾个什么劲(其实是觉得这个像乱码一样的东西很反人类,还有就是lan~),但是有些时候度娘也不是那么靠谱啊,所以只能自己动手,不能总是麻烦人家咯。 首先呢找到正则表达式的规则:http://www.w3cschool.cc/regexp/regexp-rule.html 然后测试正则表达式的地方:http://tool.chinaz.com/regex/ 具体怎么学呢,就是找个表达式对着规则表去挨个看是标点啥的是什么意思,然后呢再自己在这个表达式基础上加点料,扩展扩展,然后再在测试网站上面乱写写。 例如:我需要用程序获取到的邮件主题中括号括起来的数字,中文括号英文括号都可以 英文括号需要转译即:() 中文括号直接用() 而数字用d表示多个数字则在后面放个*就ok 最终就是:[((][d]*[))] 解释过来就是:一段文字中只要包含以中/英文扩开头,中间包含若干个数字,再以中/英文括号结尾 ok第一个问题解决。 后面还有个需求:提取带各种标签的中的前100个纯文字 这里首先给所有标签去掉,这里就简单的判断两个尖括号之间的内容然后再提取前100个。 body.gsub(/<[^>]*>/,'') 这里的^在括号里面指的相当于逻辑非的意思,所以这段代码的意思就是两个尖括号之间若干个不是’>‘的任意字符(包括尖括号) 再提取前100个:^[sS]{100} 这里的^是指从文字开头第一个字开始算,提取非空字符、空字符,100个
当然 这些都是比较入门的正则表达式应用,不过只要知道了怎么学以后用起来就更方便了,一切为了偷懒而努力~ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |