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.]+)'
网友评论