今天小挑战了一下正则表达式,以前总是闻而拒之,碰都不敢碰一下,今天实属无奈,小挑战了一下,仅以此文章作为学习正则开始的记录。
以下是学习的片段:
目的:需要提取内容中的站内链接;
原因:必须要用正则,别的没法做到【我是说我使用的功能的地方】
开始:
首先,在网上找了一些正则的文章看了看,其实没什么头脑,以前也有一些初浅的了解,这次看看教程能加深一点印象。
可惜啊,看了半天还是不会『其实已经停在这里几天了』,无奈去蓝色发帖,没人理会。于是决定还是尝试自己写吧,原来都是被逼出来的。
参考了判断邮箱的代码、判断区号、电话号、提取HTML标签等等案例就开始着手写了,下面是写过的内容:
<script>
var s = "<a href=’http://bbs.muent.com/vvv/dad.do’ target=’_blank’>穆恩特链接</a>Hello <a href=’http://www.muent.com/’ >穆恩特链接2</a> world.<a href=’http://www.china.com/’>china链接</a> fuqi_33@174.cn";
//reg = /world/i; // i表示不区分大小写
//reg = /<a([^>]*)>/;
//reg = /<a([^>]*)>/g;
reg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
//mreg = /<a\s+[\S]+muent.com\/\’>/g;//可以提部分取
//mreg = /<a\s+\S+muent.com[^>]\S\s*>/g;//已经可以正常取域名了,但域名后面不能跟目录
mreg = /<a\s+\S+muent.com([^>]*)>/g;//** 恭喜,应该考虑全面了,取到了
//alert(s.search(reg));
//mreghou = /<a\s+\S+muent.com([^>]*)>\S+([^</]*)>/g;
alert(s.replace(mreg,’1′));
//alert(mreg.test(s));
</script>
var s = "<a href=’http://bbs.muent.com/vvv/dad.do’ target=’_blank’>穆恩特链接</a>Hello <a href=’http://www.muent.com/’ >穆恩特链接2</a> world.<a href=’http://www.china.com/’>china链接</a> fuqi_33@174.cn";
//reg = /world/i; // i表示不区分大小写
//reg = /<a([^>]*)>/;
//reg = /<a([^>]*)>/g;
reg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
//mreg = /<a\s+[\S]+muent.com\/\’>/g;//可以提部分取
//mreg = /<a\s+\S+muent.com[^>]\S\s*>/g;//已经可以正常取域名了,但域名后面不能跟目录
mreg = /<a\s+\S+muent.com([^>]*)>/g;//** 恭喜,应该考虑全面了,取到了
//alert(s.search(reg));
//mreghou = /<a\s+\S+muent.com([^>]*)>\S+([^</]*)>/g;
alert(s.replace(mreg,’1′));
//alert(mreg.test(s));
</script>
重要的就是这句,别的都没用:
/<a\s+\S+muent.com([^>]*)>/g
这句的意思是只要链接中包含有muent.com字符那就可以提取出来,我上面是将其替换为1作为测试。
说实话,当提取成功那瞬间还真有点小成就,其实我也不知道自己写的对不对,但是看预览是达到了效果,可能很多地方还没有考虑到,以后继续努力学习正则啦,待学习一段时间进步后再回头看看这篇文章,感受一下自己写的有多烂。。。。
还希望各位同学能一起进步,一起学习。