注:本文仅列举的实例,基础知识网上一搜一大把,这里不赘述了。
1. Python爬虫中的使用
这里面使用比较简单,作为入门用的,比如爬取CSDN首页的侧边栏的链接与对应名字:
import re
Import requests
def test_csdn_re():
response = requests.get('https://www.csdn.net/')
pat = r'<li class=""><a href="(.*?)">(.*?)</a></li>'
rst_lst = re.compile(pat).findall(response.text)
print(rst_lst)
可以看出,findall返回是一个列表类型,每一个内容项是一个元祖。
2. JS表单验证
此处对经常提交的3个内容 账号、密码、邮箱这三个进行示例
在此处,我们设定账号仅为字母与数字,而密码为任意字符,邮箱为一般规范。
在JS里面,正则使用//括起来。
<div name='正则表达式'>
<form onsubmit="return doSubmit()" action="js_study.html" name="re_test" method="post">
账号:<input type="text" name="uname"/> 8-16位的有效字符<br/><br/>
密码:<input type="password" name="upass"/> 6-18位的任意字符<br/><br/>
邮箱:<input type="text" name="email"/> <br/><br/>
<input type="submit" value="提交"/>
</form>
<script type="text/javascript">
function doSubmit(){
var name = document.re_test.uname.value;
if (name.match(/^\w{8,16}$/) == null){
alert("必须为8-16位的字母或数字!");
return false;
}
var upass = document.re_test.upass.value;
if (upass.match(/^.{6,18}$/) == null){
alert("必须为6-18的任意字符!");
return false;
}
var email = document.re_test.email.value;
if (email.match(/^\w+@\w+(\.\w+){1,3}$/) == null){
alert("email error");
return false;
}
alert("验证通过!")
return true;
}
</script>
</div>
需要注意的是,在email中,后面可能出现多次“.” 比如 hehe@126.com.cn ,所以这次运行出现1-3次。
3. 在mysql中使用正则表达式
在user表单中,寻找仅含有2个小写字母的name
Mysql> select * from user where name regexp ‘^[a-z]{2}$’
在user表单中,寻找仅含有2个小写字母和2位数字的name
Mysql> select * from user where name regexp ‘^[a-z]{2}[0-9]{3}$’
注意:^$符合必须加上,否则为包含关系(亲可以自己测试下)
4. 数据清洗建模
我们从网上爬取了大量的数据后,需要获取有益的信息,如图中Out[3]中,从路线信息中我们需要获取旅行项目的天数信息以及价格信息,而从酒店新中我们要获得酒店分数和酒店类型。
假设我们获取的信息保存在*.csv 文件中(文后提供几条数据用于测试)
其中一条CSV信息为:
出发地,目的地,路线信息,酒店信息
杭州,丽江,"机酒自由行
丽江5日自由行,入住丽江添富太和休闲度假酒店+接送机,品古城文化,享至尊服务,良辰美景,一网打尽!spa/按摩5天4晚|天天出发|飞机|舒适游1888起/人","4.4分 高档型"
获取这些信息如In[7]所示,可以知道正则表达式还是比较容易获取的,我们把获取的新的信息生成新的字段,如图out[7]所示
怎么样,正则使用领域还是挺广泛的吧,希望这篇博文能拓宽你对正则表达式的视野;
附几条 CSV 参考信息:
出发地,目的地,路线信息,酒店信息
杭州,丽江,"机酒自由行
丽江5日自由行,入住丽江添富太和休闲度假酒店+接送机,品古城文化,享至尊服务,良辰美景,一网打尽!
spa/按摩
5天4晚|天天出发|飞机|舒适游
1888起/人","4.4分
高档型"
杭州,丽江,"机酒自由行
丽江6日自由行,入住丽江添富太和休闲度假酒店+接送机,品古城文化,享至尊服务,良辰美景,一网打尽!
6天5晚|天天出发|飞机|舒适游
1872起/人","4.4分
高档型"
杭州,丽江,"机酒自由行
丽江+香格里拉 丽江+香格里拉6日自由行,机票+特色客栈,丽江往返+接机
特色客栈
6天5晚|天天出发|飞机|经济游
1517起/人","4.4分
经济型"
杭州,丽江,"机酒自由行
丽江+大理 丽江、大理双城6天自由行,3晚丽江特色客栈,2晚大理洱海边客栈,赠送丽江接机服务,行程自己做主,悠闲假期,彩云之南!
海边客栈特色客栈
6天5晚|天天出发|飞机|经济游
1612起/人","4.4分
经济型"
杭州,丽江,"机酒自由行
丽江5日自由行,入住丽江听心祥和院+接送机
5天4晚|天天出发|飞机|舒适游
1740起/人","4.7分
高档型"
杭州,丽江,"机酒自由行
丽江+泸沽湖6日自由行,机票+特色客栈,丽江往返+接机
特色客栈
6天5晚|天天出发|飞机|经济游
1669起/人","4.4分
经济型"
杭州,丽江,"机酒自由行
丽江+大理 丽江、大理6天5晚自由行,丽江进大理出,不走回头路
6天5晚|飞机|经济游
1703起/人","4.4分
经济型"