标签:大小 port 出现 flag abc 单个字符 结果 多行 import
python正则表达式
1、re简介
正则表达式re,是Regular Expression的简称。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
2、在python中使用正则表达式
在python中许多场合(本人是在使用爬虫时)正则表达式都能起到很关键的作用,在使用前,先引用re包。
1、引入
import re
引入re包
2、基础语法
re.findall(r‘正则式‘,‘文本‘,flag)
findall返回的是一个数组,每个结果是一个元素
re.search(r‘正则式‘,‘文本‘,flag)
search返回的是一个match对象
re.sub(r‘正则式‘,‘替换对象‘,‘文本‘,flag)
寻找正则式并替换成指定内容
3、写正则表达式的步骤
- 确定包含几个子模式
- 确定各个子模式内容
- 各个子模式重复情况
- 位置限制
4、正则表达式的基础语法
1.字符类型 |
|
正则内容 |
匹配内容 |
a,b,c,1,2,3 |
字符常量,写什么就是什么 |
\d |
一个数字 |
\D |
一个非数字 |
\s |
一个空格 |
\S |
一个非空格 |
\w |
一个任意字母、数字、下划线 |
\W |
一个非任意字母、数字、下划线 |
. |
任意字符 |
[abc] |
a,b,c中任意一个字符 |
[a-e] |
a-e中任意一个字符 |
[1-9] |
1-9中任意一个数字 |
[^3-5] |
取反,除了3-5中的任意内容 |
2.重复次数、量词 |
|
量词内容 |
匹配内容 |
* |
0或多个 |
+ |
1或多个 |
? |
0或一个 |
{2} |
2个 |
{2,5} |
2到5个 |
3.组合模式 |
|
() |
分组,运用括号防止歧义 |
| |
多种情况同时出现 |
拼接 |
多个模式直接拼接 |
4.位置 |
|
正则内容 |
匹配内容 |
^ |
文章开头 |
$ |
文章结尾 |
\b |
单词边界 |
\B |
非单词边界 |
5.flag |
|
re.I |
忽略大小写的匹配模式 |
re.M |
多行模式, 改变 ^ 和 $ 的行为 |
re.S |
此模式下 ‘.‘ 的匹配不受限制,可匹配任何字符,包括换行符,也就是默认是不能匹配换行符 |
re.X |
冗余模式, 此模式忽略正则表达式中的空白和#号的注释 |
5、实际案例
1、不使用正则表达式的查找
# 在字符串中找到一段固定内容,不需要使用正则表达式
text = ‘The quick brown fox jumps over a lazy dog‘
target = ‘fox‘
if target in text:
print(‘找到了‘)
找到了
2、寻找固定内容
# 用正则表达式在文本中寻找固定内容
text = ‘The quick brown fox jumps over a lazy dog‘
result = re.findall(r‘fox‘,text)
print(result)
[‘fox‘]
3、寻找特定内容
# 用正则表达式在文本中寻找特定内容
# 寻找单个字符
text = ‘The quick brown fox jumps over a lazy dog‘
result = re.findall(r‘\w‘,text)
print(result)
# 寻找多个字符
text = ‘The quick brown fox jumps over a lazy dog‘
result = re.findall(r‘\w+‘,text)
print(result)
[‘T‘, ‘h‘, ‘e‘, ‘q‘, ‘u‘, ‘i‘, ‘c‘, ‘k‘, ‘b‘, ‘r‘, ‘o‘, ‘w‘, ‘n‘, ‘f‘, ‘o‘, ‘x‘, ‘j‘, ‘u‘, ‘m‘, ‘p‘, ‘s‘, ‘o‘, ‘v‘, ‘e‘, ‘r‘, ‘a‘, ‘l‘, ‘a‘, ‘z‘, ‘y‘, ‘d‘, ‘o‘, ‘g‘]
[‘The‘, ‘quick‘, ‘brown‘, ‘fox‘, ‘jumps‘, ‘over‘, ‘a‘, ‘lazy‘, ‘dog‘]
4、寻找多种情况
# 寻找3、4个字母的单词
# \b表示单词的边界,限定单词只能为3个字母或四个字母
text = ‘The fast brown fox jumps over a lazy dog and has 24 letters‘
result = re.findall(r‘\b\w{3}\b|\b\w{4}\b‘,text)
print(result)
[‘The‘, ‘fast‘, ‘fox‘, ‘over‘, ‘lazy‘, ‘dog‘, ‘and‘, ‘has‘]
5、寻找组合情况
# 寻找数字 单词的情况
text = ‘The fast brown fox jumps over a lazy dog and has 24 letters‘
result = re.findall(r‘\d+ \w+‘,text)
print(result)
[‘24 letters‘]
6、寻找限定位置的情况
# 在句首或句尾
text = ‘The fast brown fox jumps over a lazy dog and has 24 letters‘
result = re.findall(r‘^\w+|\w+$‘,text)
print(result)
[‘The‘, ‘letters‘]
7、判断是否存在
text = ‘The fast brown fox jumps over a lazy dog and has 24 letters‘
if re.findall(r‘fox‘,text):
print(‘存在‘)
else :
print(‘不存在‘)
存在
6、总结
当一个问题可以用正则表达式解决,那么你就有了两个问题。
python正则表达式
标签:大小 port 出现 flag abc 单个字符 结果 多行 import
原文地址:https://www.cnblogs.com/huigugu/p/14759245.html