目录
我们在进行字符串处理的时候,希望按自定义的规则进行处理,我们将这些规则称为模式。我们使用正则表达式来表示这些规则。
一、什么是正则表达式
正则表达式就是表述字符排列的一套规则,它的功能非常强大,在实际项目中,但主要是用来处理某种特定格式的信息。
在python中,我们主要使用re模块来实现python的正则表达式功能。
二、正则表达式的基础知识
本节主要讲述正则表示如何去写,我们将分别从原子、元字符、模式修改、贪婪模式和懒惰模式等方面进行介绍。关于正则表达式的使用则在下一小节中详细介绍。
1. 原子
原子是正则表达式中的基本组成单元,每一个正则表达式中至少包含一个原子,常见的原子种类有以下几种:
- 普通字符作为原子。
- 非打印字符作为原子。
- 通用字符作为原子。
- 原子表。
接下来我们分别对这几类进行详细介绍。
1)普通字符作为原子
普通字符主要指得是字母、数据、下划线。
我们可以使用普通字符组成的正则表达式去查找相应的字符。例如我们的正则表达式为”python”,然后去字符串string中去寻找是否包含符合正则表达式的字符串(“python“):
import re
pattern = "assd"
string = "C:\\Users\\root\\AppData\\Local\\Programs\\Python\\Python37-32" \
"\\python.exe D:\\pycharm\\workspace\\spiderAnalysis\\AI_pie\\main.py"
result = re.search(pattern, string)
print(result)
<re.Match object; span=(56, 62), match='python'>
or
None
2)非打印字符作为原子
非打印字符主要指的是字符串中的控制字符,例如换行符,空格,tab等。
表2.1列出了几个常见的非打印字符及其含义
表2.1 非打印字符表 |
|||
序号 |
符号 |
含义 |
|
1 |
\n |
用于匹配一个换行符 |
|
2 |
\t |
用于匹配一个制表符 |
|
3 |
|
|
Pycharm中,如果想通过回车实现换行的话,实际在字符串中是没有换行符”\n”的,因为它是通过拼接实现的,自动把换行符给去掉了。
pattern = '\n'
string = "C:\\Users\\root\\AppData\\Local\nPrograms\\Python\\Python37-32" \
"\\python.exe D:\\pycharm\\workspace\\spiderAnalysis\\AI_pie\\main.py"
result = re.search(pattern, string)
#print(string)
#print(result)
'''
C:\\Users\root\AppData\Local
Programs\Python\Python37-32\python.exe D:\pycharm\workspace\spiderAnalysis\AI_pie\main.py
<re.Match object; span=(27, 28), match='\n'>
'''
3) 通用字符作为原子
接下来介绍通用字符。
所谓通用字符指的是,一个原子可以匹配一类字符。
这在实际项目中非常有用。常见的通用字符及其含义如下表:
表2.2 常见的通用字符及其含义 |
|||
序号 |
符号 |
含义 |
|
1 |
\w |
匹配任意一个字母、数字、下划线 |
|
2 |
\W |
匹配除了字符数字下划线的其他一个字符 |
|
3 |
\d |
匹配一个十进制 |