admin 管理员组文章数量: 887032
2023年12月19日发(作者:二维数组第一行值给一维数组)
python 匹配正则
正则表达式是一种强大的文本匹配工具,Python中也提供了re模块来支持正则表达式的使用。本文将通过一些简单的例子来介绍Python中如何使用正则表达式进行匹配。
1.基础正则表达式
正则表达式的基本语法如下:
. 匹配任意单个字符
d 匹配数字,相当于[0-9]
w 匹配字母、数字、下划线,相当于[A-Za-z0-9_]
s 匹配空格、制表符、换行符等空白字符
[] 匹配括号中的任意一个字符
| 匹配左右两边的任意一个表达式
() 分组,可以用于后续的引用
例如:
import re
# 匹配以a开头的字符串
result = ('a', 'abc')
print(()) # a
# 匹配数字
result = ('d', '123')
print(()) # 1
# 匹配字母、数字、下划线
- 1 -
result = ('w', 'a_1')
print(()) # a
# 匹配空白字符
result = ('s', ' a')
print(()) # (一个空格)
2.量词
量词用于控制匹配的次数,常见的量词包括:
* 匹配前面的字符0次或多次
+ 匹配前面的字符1次或多次
匹配前面的字符0次或1次
{n} 匹配前面的字符恰好n次
{n,} 匹配前面的字符至少n次
{n,m} 匹配前面的字符至少n次,至多m次
例如:
import re
# 匹配a出现0次或多次
result = ('a*', 'aaabbb')
print(()) # aaa
# 匹配a出现1次或多次
result = ('a+', 'aaabbb')
print(()) # aaa
# 匹配a出现0次或1次
- 2 -
result = ('a?', 'aaabbb')
print(()) # a
# 匹配a出现3次
result = ('a{3}', 'aaabbb')
print(()) # aaa
# 匹配a出现至少2次
result = ('a{2,}', 'aaabbb')
print(()) # aaa
# 匹配a出现至少1次,至多3次
result = ('a{1,3}', 'aaabbb')
print(()) # aaa
3.字符集
字符集用于匹配一组字符中的任意一个,常见的字符集包括:
[abc] 匹配a、b、c中的任意一个字符
[a-z] 匹配a到z中的任意一个小写字母
[A-Z] 匹配A到Z中的任意一个大写字母
[0-9] 匹配0到9中的任意一个数字
[^a] 匹配除了a以外的任意一个字符
例如:
import re
# 匹配a、b、c中的任意一个字符
result = ('[abc]', 'b')
- 3 -
print(()) # b
# 匹配a到z中的任意一个小写字母
result = ('[a-z]', 'c')
print(()) # c
# 匹配A到Z中的任意一个大写字母
result = ('[A-Z]', 'C')
print(()) # C
# 匹配0到9中的任意一个数字
result = ('[0-9]', '7')
print(()) # 7
# 匹配除了a以外的任意一个字符
result = ('[^a]', 'b')
print(()) # b
4.特殊字符
特殊字符用于匹配一些特殊的字符,常见的特殊字符包括:
匹配转义字符,例如匹配点号.可以使用.
^ 匹配字符串的开头
$ 匹配字符串的结尾
b 匹配单词边界
B 匹配非单词边界
例如:
import re
- 4 -
# 匹配转义字符,例如匹配点号可以使用.
result = ('a.b', 'a.b')
print(()) # a.b
# 匹配字符串的开头
result = ('^abc', 'abcdef')
print(()) # abc
# 匹配字符串的结尾
result = ('abc$', 'defabc')
print(()) # abc
# 匹配单词边界
result = l(r'btheb', 'the cat in the hat')
print(result) # ['the', 'the']
# 匹配非单词边界
result = l(r'BtheB', 'themethecatinthehat')
print(result) # ['the', 'the']
以上就是Python中使用正则表达式进行匹配的基础知识,希望对大家有所帮助。
- 5 -
版权声明:本文标题:python 匹配正则 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1702972423h437991.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论