一、基础知识
1、首先要了解和明确的是如何用字符来描述字符或字符串。
2、在正则表达式中,如果直接给出字符,就是精确匹配。(eg:re.match(‘one’ , ‘one’ , regs=0))
3、除了直接给出的字符还有一类元字符(metacharacters),包括:
. *+?\ [ ] ^ $ { } | ( ) |
4、熟悉python中re模块的常用函数。
5、正则表达式可以设定整个文本的模式:
(1)单行模式,文本被强制当作单行来匹配,什么样的文本不会被当作单行?就是里面包含有换行符的文本。(换行符:\n)
(2)多行模式,文本被强制当作多行来匹配。包含换行符的字符串总是被当作多行处理。
二、元字符介绍
字符 | 匹配 |
---|---|
. | 匹配任意字符(除了\n(换行符)) |
[…] | 匹配字符集,也可以圈定范围(eg:2到9范围内的数字,写为[2-9],闭区间。注意,在[ ]中的 . 等,就是 . 的意思,非元字符的含义) |
[^…] | 匹配除了字符集中字符的所有字符 |
a|b | 匹配字符a或字符b |
\d | 匹配数字 |
\D | 匹配非数字 |
\s | 匹配空白符(包括空格、tab、换行符等。价于[\t\n\r\f\v]) |
\S | 匹配非空白符 |
\w | 匹配单词字符[a-zA-Z0-9] |
\W | 匹配非单词字符 |
* | 匹配前一个字符0次或者无数次 |
+ | 匹配前一个字符1次或者无数次 |
? | 匹配前一个字符0次或者1次 |
{m} | 连续匹配前一个字符m次 |
{m,} | 连续重复m次或更多次 |
{m,n} | 匹配前一个字符最少m次最多n次 |
*?/+?/?? | 匹配模式变为非贪婪(尽可能少匹配字符) |
^ | 字符串的起始位置,^\d表示必须以数字开头 |
$ | 字符串的结尾位置,\d 表 示 必 须 以 数 字 结 束 。 假 如 用 p y 匹 配 ′ p y t h o n ′ , 但 是 加 上 p y 表示必须以数字结束。假如用py匹配'python',但是加上^py 表示必须以数字结束。假如用py匹配′python′,但是加上py就变成了整行匹配,就只能匹配’py’了。 |
示例:
1、. 的用法
2、[ ] 的用法
3、\d和\D的用法
a = 'python'
match_object1 = re.match('py\d',a,flags=0)
print(match_object1)
match_object2 = re.match('py\D',a,flags=0)
print(match_object2.group())
b = 'py6thon'
match_object3 = re.match('py\d',b,flags=0)
print(match_object3.group())
match_object4 = re.match('py\D',b,flags