Python正则表达式元字符与字符集的一些基础用法(笔记)

发布时间:2024年01月10日
import re
a = 'a34j3jfdfPython7 Java.*&32\rPHP\t\n'
# r = re.findall('\d', a) # \d 等同于 [0-9]
# r = re.findall('\D', a) # \D 等同于 [^0-9]
# r = re.findall('\w', a) # \w 等同于 [A-Za-z0-9_]
# r = re.findall('\W', a) # \W 等同于 [^A-Za-z0-9_] 包括了空格,\n, \r, \t 和 特殊符号(. * & ^ ······)
# r = re.findall('\s', a) # \s 匹配任何不可见字符(即空白字符,不可见的),包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v]。
# r = re.findall('\S', a) # 匹配任何可见字符。等价于[^ \f\n\r\t\v]。
# r = re.findall('.', a) # 匹配除换行符\n之外其他所有字符

# 数量词
# r = re.findall('\w{3,6}', a) # 贪婪,数量词限定在指定区间范围内,正则都是尽可能取到最大区间范围内的值
# r = re.findall('\w{3,6}?', a) # 非贪婪,匹配到3个单词符合就返回了 

# * 匹配0次或者无限多次, 只对前面一个字符生效
# + 匹配1次或者无限多次, 只对前面一个字符生效
# ? 匹配0次或者1次, 只对前面一个字符生效
# a = 'pytho0python1pythonn2'
# r = re.findall('python*', a) # 打印结果['pytho', 'python', 'pythonn']
# r = re.findall('python+', a) # 打印结果['python', 'pythonn']
# r = re.findall('python?', a) # 打印结果['pytho', 'python', 'python']
# ? 前面是花括号,代表的是非贪婪, 负责代表数量词
# r = re.findall('python{1,2}', a) # ['python', 'pythonn']
# r = re.findall('python{1,2}?', a) # ['python', 'python']

# 组
# [abcd] 中括号里里面的每个字符都是或关系,而(abcd)里面的每个字符都是且关系
# a = 'PythonPythonPythonPythonPython'
# 4 ~ 8次
# r = re.findall('(Python){3}(JS)', a) # []

lanuage = 'PythonC#\n\rJavaPHP'
r = re.findall('c#', lanuage, re.I) # re.I 忽略大小写, 打印结果['C#']
r = re.findall('c#.', lanuage, re.I) # 打印结果[]
r = re.findall('c#.', lanuage, re.I | re.S) # 打印结果['C#\n']


# 字符集
# s = 'abc, acc, adc, aec, afc, ahc'
# r = re.findall('a[^cfd]c', s)
print(r)

此篇只是我个人的笔记,也没做过多描述。如果对你有帮助的话,那也挺好的,哈哈哈

文章来源:https://blog.csdn.net/xm_law/article/details/135500957
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。