‘The quick brown
fo
x jumps
fo
r
fo
od’
匹配
其中
3
个
含
有’
fo’
的字符
串
1+1=2
‘1+1=2’
+
为
元
字符,无法
匹配
1\+1=2
‘
1+1=2
’
[‘1+1=2’]
(note)
‘please(
note
)’
()
为
元
字符
,
匹配”
note”
\(note\)
‘please
(note)
’
匹配“
(note)”

Python 中的正则表达式引
擎
•
Python 中,
re
模块
提供
了正则表达式操作所需要的
功
能:
•
re.
f
inda
ll
(pattern, string)
:以列表
形
式列出字符串中
模
式的所有
匹
配
项
Python
语句
匹配结果
re.findall('
fo
','The quick brown fox jumps for food')
['fo', 'fo', 'fo']
re.findall('
1+1=2
','1+1=2')
[]
re.findall(
'1\+1=2
','1+1=2')
['1+1=2']
re.findall('
(note)
','please(note)')
['note']
re.findall('
\(note\)
','please(note)')
['(note)']
>>> import re
#
导
入
模块
re
>>>re.findall(‘d’,‘godness’)
#re
模块
还
有其他方法,
先
介绍
findall
来验
证
匹配结果
['d']

4.2.1 正则表达式
元
字符
正则表达式
元
字符
分类:
•
字符类
•
预
定
义
字符类
•
边
界
匹配
符
•
重
复
限
定符
•
分组符
()
•
选择
符
|
如:
\b
.
*
+
()
都是
元
字符

4.2.1 正则表达式
元
字符 -
字符类
•
字符类
:由一对
[]
方括号括
起
来
的字符
集
合
,定
义
方式如下:
•
[
x
y
z
]
:
枚
举
字符
集
,
匹配
括号中
任
意字符
•
'
[pjc]
ython
'
可以
匹配
'python'
、
'jython'
、
'cython'
•
[^
x
y
z
]
: 否定
枚
举
字符
集
,
匹配
不在括号中
任
意字符
•
'
[^abc]
' 可以
匹配
一个
任
意
除
'a' 、 'b' 、 'c'
之
外
的字符
•
[
a
-
z
]
:
指定
范围
的字符,
匹配
指定
范围
的
任
意字符
•
'[
a-
z
A-
Z
0-9]
'
可以
匹配
一个
任
意大小写字母
或
数字
•
[^
m-
z
]
:
指定
范围
以
外
的字符,
匹配
指定
范围
以
外
的
任
意字符
元
字符
说明
[]
匹配位
于
[]
中的
任
意一个字符
-
用在
[]
之
内用
来
表示
范围
^
用在
[]
之
内用
来
表示否定

4.2.1 正则表达式
元
字符 -
预
定
义
字符类
•
预
定
义
字符类
:正则表达式将常常用到的一
些
特定字符类
形
成了
若干
预
定
义
字符类
元
字符
说明
.
匹配除
换行符以
外
的
任
意单个字符
\d
匹配任何
数字,
相
当
于
[0-9]
\D
与
\d
含
义
相反
,
非数字,
相
当
于
[^0-9]
\s
匹配任何空白
字符,
相
当
于
[\t\n\r\f\v]
\S
与
\s
含
义
相反
,
相
当
于
[^\t\n\r\f\v]
\w
匹配任何
字母、数字以及下
划线
,
相
当
于
[a-zA-Z0-9_]
\W
与
\w
含
义
相反
,
相
当
于
[^a-zA-Z0-9_]

4.2.1 正则表达式
元
字符 -
边
界
匹配
符
•
边
界
匹配
符
:
字符串
匹配
往往涉
及
从
某
个
位
置
开始匹配
,例如行的
开头或结果
、
单
词
边
界等,
边
界
匹配
符用于
匹配
字符串的
位
置
元
字符
说明
^
匹配
行
首
,
匹配
以
^
后
面的字符
开头
的字符串
如:
“
^
a”
匹配“
a
bc”
中的
“
a”,
不
匹配“
bat”
中的
“
a”
$
匹配
行
尾
,
匹配
以
$
之前
的字符
结束
的字符串
如:
“
c
$
”
匹配“
ab
c
”
中的
“
c”,
不
匹配“
acb”
中的
“
c”
\b
匹配
单
词头或
单
词尾


You've reached the end of your free preview.
Want to read all 92 pages?
- Spring '15
- prof.Yang
- Python Programming