[学习记录]python正则表达式

1.首先先介绍常见的元字符

表示法 描述 示例
literal 匹配字符串的字面值literal python
re1|re2 匹配re1或re2 python|java
. 匹配\n之外的任意字符 pyth.n
^ 匹配字符串起始部分 (^begin)(得到的是begin开头)
$ 匹配字符串终止部分 (end$)
* 匹配0次或多次前面的表达式 h*
+ 匹配1次或多次前面的表达式 h+
? 匹配0次或1次前面的表达式 h?
{N} 匹配N次前面的表达式 h{5}
{N,M} 匹配N~M次前面的表达式 h{4,6}
[abcde] 匹配字符集中的任意单一字符 [abcde]
[a-zA-Z] 匹配范围内的任意单一字符 [0-9a-zA-Z]
[^] 不匹配此字符集内的或范围内的任意字符 [^abcd1-9]
(*,+,?,{})? 在上述匹配条件的后面加?,表示非贪婪匹配(尽可能少匹配) a*?,a+?,a??,a{2}?
() 内部可视为独立的正则表达式,另存为子组 ([0-9].)[a-z]
\d 匹配任何十进制数字,[0-9],\D与之相反 \d
\w 匹配任何字母与数字,[0-9a-zA-Z],\W与之相反 \w 
\s  匹配任何空格字符,[\n\t\r\v\f],\S与之相反 \s 
\b  匹配任何单词边界,\B与之相反 the\b  ,    \bthe  ,但\B的位置并不影响结果 
\c 匹配c的字面含义(转义) \\,\. ,\*
\A   匹配字符串开头,^ \A 
\Z  匹配字符串结尾 ,& \Z 

2.python中的re模块以及方法

  re.match(pattern,string,flags=0)   尝试匹配,如果成功返回匹配对象,失败则返回none,其中flag可以选择为  re.I  即不区分大小写

  re.search(pattern,string,flags=0)   使用可选标记搜索字符串中第一次出现的正则表达式模式,成功返回匹配对象,失败则返回none

  re.findall(pattern,string,flags=0),查找所有符合条件的正则表达式模式,并返回一个列表

  re.finditer(pattern,string,flags=0)同上,但返回的是一个迭代器

    

  子串group

  

  groups()则可以直接以元组形式返回

  re.sub(pattern,replace,string,count=0)将string中符合pattern模式的字符串替换为replace,返回新字符串

  re.subn与sub几乎一样,只是返回的时候多返回替换次数这个值

  

猜你喜欢

转载自www.cnblogs.com/trickofjoker/p/9279207.html
今日推荐