python学习 re正则表达式

一、正则的常用符号:

.     匹配任一字符,换行符\n除外

*     匹配前一个字符0次或无限次

?     匹配前一个字符0次或1次

.*     贪心算法(尽可能多的匹配)

.*?     非贪心算法(尽可能少的匹配)

()     括号内的数据作为结果返回

二、正则表达式:

\w 匹配字母数字及下划线
\W 匹配非字母数字及下划线
\s 匹配任意空白字符,等价于 [\t\n\r\f].
\S 匹配任意非空字符
\d 匹配任意数字,等价于 [0-9].
\D 匹配任意非数字
\A 匹配字符串开始
\Z 匹配字符串结束,如果是存在换行,只匹配到换行前的结束字符串。
\z 匹配字符串结束
\G 匹配最后匹配完成的位置。
\b 匹配一个单词边界,也就是指单词和空格间的位置。例如, 'er\b' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'。
\B 匹配非单词边界。'er\B' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'。
\n, \t, 等. 匹配一个换行符。匹配一个制表符。等
\1...\9 匹配第n个分组的内容。
\10 匹配第n个分组的内容,如果它经匹配。否则指的是八进制字符码的表达式。

三、函数的用法

1、检索和替换

Python 的 re 模块提供了re.sub用于替换字符串中的匹配项。

re.sub(pattern, repl, string, count=0, flags=0)
  • pattern : 正则中的模式字符串。
  • repl : 替换的字符串,也可为一个函数。
  • string : 要被查找替换的原始字符串。
  • count : 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配。

如下替换如下url中的第一个数字2为3:

#coding=utf-8
import re

url = "http://search.chinahr.com/sh/job/pn2/?key=%E9%87%91%E8%9E%8D"
#newurl = re.sub('[0-9]','3',url,count=1)
newurl = re.sub('\d+','3',url,count=1)

print newurl


#result:
#    http://search.chinahr.com/sh/job/pn3/?key=%E9%87%91%E8%9E%8D

作者:frank_zyp
您的支持是对博主最大的鼓励,感谢您的认真阅读。
本文无所谓版权,欢迎转载。

猜你喜欢

转载自blog.csdn.net/frank_zyp/article/details/83582709