正则对数据处理,数据分析,数据校验方面十分有用。
让我们来学习下python中的正则模块吧
---------------------分割线---------------------
python中正则模块re(regex的意思)
常用的模式:
.匹配任意字符,除了换行符
\s一个空格
\S一个非空格
\d表示一个数字
\D表示一个非数字
\w匹配任意字母数字【0-9】【a-z】
\W匹配任意非字母数字
【】 序列 eg:【a-z】:a到z中任意一个
边界和量:
^以开头/不包含xx eg:【^abc】:不包含abc的序列
$以结尾
?0或1个匹配
+1到任意多个匹配
* 0到任意多个匹配
{n,m}n到m个匹配项(n<m)
关系
| 或
() 组
python中对应的函数:
re.match(pattern,String):从字符串的起始位置匹配一个模式,匹配成功返回StringObject,否则返回none
re.search(pattern,String):扫描整个字符串并返回第一个成功匹配的StringObject,否则返回none
re.sub(pattern, repl,string, count=0)
参数详解:pattern : 正则中的模式字符串。
repl : 替换的字符串,也可为一个函数。
string : 要被替换的原始字符串。
count : 替换次数
-----------------奉上实例demo
import re s1="I am apple" s2="I am pen" s3="AHA,I am applepen"
----re.match(pattern,String)
result1=re.match(r".*I am.*",s1) #在s1开头匹配"I am" print(result1) #<_sre.SRE_Match object; span=(0, 10), match='I am apple'> print(result1.group()) #I am apple
result2=re.match(r".*I am.*",s3) #在s3开头匹配"I am"
print(result1) #none
----re.search(pattern,String)
result3=re.search(r".*I am.*",s3) #在s3中匹配"I am",若有返回s3 print(result3) #<_sre.SRE_Match object; span=(4, 17), match='I am applepen'> print(result3.group()) #I am applepen
----re. result4=re.sub(r"I am ","he is ",s3)#将s3中的"I am "替换为"he is " print(result4) #AHA,he is applepen