正则表达式基础
基础一
全局匹配函数使用格式 :
re.compile(正则表达式).findall(源字符串)
普通字符 | 正常匹配 |
---|---|
\n | 匹配换行符 |
\t | 匹配制表符 |
\w | 匹配字母、数字、下划线 |
\W | 匹配除字母、数字、下划线 |
\d | 匹配十进制数字 |
\D | 匹配除十进制数字 |
\s | 匹配空白字符 |
\S | 匹配除空白字符 |
[ab89x] | 原子表,匹配ab89x中任意一个 |
[^ab89x] | 原子表,匹配除ab89x以外的任意一个 |
基础二
. | 匹配除换行符以外的任意一个字符 |
---|---|
^ | 匹配开始位置 |
-------- | --------- |
$ | 匹配结束位置 |
-------- | --------- |
* | 前一个字符出现0\1\多次 |
-------- | --------- |
? | 前一个字符出现0\1次 |
-------- | --------- |
+ | 前一个字符出现1\多次 |
-------- | --------- |
{n} | 前一个字符恰好出现n次 |
-------- | --------- |
{n,} | 前一个字符至少出现n次 |
-------- | --------- |
{n,m} | 前一个字符至少出现n次,至多出现m次 |
-------- | --------- |
() | 模式单元,即,想提取什么内容,就在正则中用小括号将其括起来 |
注意
string = “aliyun”
正则表达式:“^li…"
匹配结果:None(因为字符串不是以l开头的)
string = ”aliyunedu“
正则表达式:“ali.*"
匹配结果:aliyunedu (默认贪婪,即尽可能多地进行匹配)
基础三
贪婪模式:尽可能多地匹配
懒惰模式/精准模式:尽可能少地匹配
默认贪婪模式!
若出现如下组合,则代表懒惰模式:
- *?
- +?
基础四
模式修正符:在不改变正则表达式的情况下通过模式修正符使匹配模式发生更改。
re.S | 让 . 可以匹配多行 |
---|---|
re.I | 让匹配时忽略大小写 |
实例
导入re包:import re
string="aliyunedu"
pat="yu.?"
re.compile(pat).findall(string)