python正则表达式相关函数
import re-
re.search(condition_str, source_str):正则匹配字符串中满足条件的子字符串,返回布尔值。
re.findall(condition_str, source_str):正则查找字符串中满足条件的子字符串,返回所有子字符串(the output is a list that has a string as
the single element in the list)。
正则表达式 cheat sheet
.:匹配任意字符
a..b: 匹配所有axxb型
.+万能牌(wild card):a.+b匹配所有以a开头以b结尾的字符串
(a,b间非空)。x+匹配含有一个或更多x的字符串。(greedy)
+?:+的非greedy模式
.*:广谱万能牌:a.*b匹配所有以a开头以b结尾的字符串(a,b间可以无其他字符)。x*匹配含有一个或更多x的字符串。(greedy)
*?:*的非greedy模式
(+与*都与左数第一个字符联合)
*和+均为贪心匹配(greedy matching) :matches as many required characters as possible\s: 匹配所有空格字符
\S:匹配所有非空格字符\b:匹配词的开始或结尾
\B:匹配词的非开始结尾\d:匹配所有数字,相当于set[0-9]
\D:匹配所有非数字,相当于set[^0-9][]:方括号(square bracket)内字符为可接受匹配的字符
当[]中第一个字符为^时,括号内容被反义。[^A-Za-z]表示匹配除了A-Z和a-z的所有字符。
():圆括号(parentheses)内字符为在匹配过程中被忽略的字符。但与findall()函数连用时,虽然依旧用整个正则表达式查找,但最终得到的返回值只有括号内的部分。转义字符(escape characters) :
\^:匹配行初
$:匹配行末
应用实例
- 邮件地址
[a-zA-Z0-9]\S*@\S*[a-zA-Z0-9] - 取出所有满足
Details: http://source.saki.org/viewsvn/?view=rev&rev=39772格式的url中的revision numbers
'^Details:.*rev=([0-9.]+)'
