一、正则的常用符号:
. 匹配任一字符,换行符\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
您的支持是对博主最大的鼓励,感谢您的认真阅读。
本文无所谓版权,欢迎转载。