python-正则表达式

来源:互联网 发布:棉麻格子连衣裙淘宝 编辑:程序博客网 时间:2024/06/05 00:31

(一)正则表达式主要是为了查找匹配字符,例如在字符串或者文本中寻找以“我”开头以“她”结尾的字符串。

(二)正则表达式的特殊字符:

       1)^$?+{2}{2,}{2,5}|       2)[][^][a-z]       3)\s\S\w\W       4)[\u4E00-\u9FA5]()\d

(三)正则表达式有一个包“re”,即在使用正则表达式时之前需要先import re

         ^代表开头字符,如^b表示以b开头的字符。.表示任意字符。*代表前一个字符出现任意多次,包括零次,+代表至少一次。即“^b.*”代表以b开头中间出现任意字符任意多次的字符。$代表结尾字符,如“^.*3$”代表以任意字符开头,以3结尾的字符。?代表**非贪婪匹配模式**,贪婪模式时为了匹配到符合匹配模式的最长字符串,实际上贪婪匹配模式就是匹配模式和待匹配字符都从右向左匹配,?代表的非贪婪即从左往右匹配,之一?号的位置如:

import re

line=”ja’sdsa3b2bds”
regex_str=”^.(a.*b).” #需要输出的匹配模式用括号括起来
match_obj=re.match(regex_str,line) # re包中的match函数,即re.match(匹配模式,待匹配字符)
if match_obj:
print(match_obj.group(1)) #输出匹配好的字符串,括号中的1表示从外向内第一个括号
运行结果:a3b2b #此为贪婪算法,即从右往左匹配。
若改为:
regex_str=”^.?(a.*b).
运行结果:a’sdsa3b2b #即以a开头为非贪婪(从左往右),以b结尾为贪婪。
若改为:

regex_str=”^.?(a.?b).*”
运行结果为:a’sdsa3b

{2}代表前一个字符出现两次,{2,}代表前一个字符至少出现两次,{2,5}代表至少2次,至多5次。|代表或。
【】代表括号内任意一个字符,如”^【123】”代表以1或2或3开头都行;【0-9】表示0-9区间的任意一个字符;【】内的任意符号表示符号本身,
如【^9】不表示以9开头,而表示除了9之外的字符。
\s代表空格,\S表示非空格。同理\w代表【A-Za-z0-9_】,\W代表\w相反的含义。即大写表示小写的非。
[\u4E00-\u9FA5]代表中文。
\d表示数字。

原创粉丝点击