python之正则表达式(字符)
程序员文章站
2023-11-03 08:36:10
什么是正则表达式正则表达式(regular expression)是包含文本和特殊字符的字符串,该字符串描述一个可以识别各种字符串的模式为什么要使用正则表达式1.信息隐藏2.信息过滤3.信息采集器4.信息查询那么下面我就来介绍下正则表达式的字符匹配:.匹配所有字符print(re.findall('.', "I love China,2000-07-01"))# ['I', ' ', 'l', 'o', 'v', 'e', ' ', 'C', 'h', 'i', 'n'...
什么是正则表达式
正则表达式(regular expression)是包含文本和特殊字符的字符串,该字符串描述一个可以识别各种字符串的模式
为什么要使用正则表达式
1.信息隐藏
2.信息过滤
3.信息采集器
4.信息查询
那么下面我就来介绍下正则表达式的字符匹配:
- .
匹配所有字符
print(re.findall('.', "I love China,2000-07-01"))
# ['I', ' ', 'l', 'o', 'v', 'e', ' ', 'C', 'h', 'i', 'n', 'a', ',', '2', '0', '0', '0', '-', '0', '7', '-', '0', '1']
2.[ ]
匹配[ ] 里面的内容,例如[a-z]匹配所有小写字母,同理[a-zA-Z]匹配所有字母
print(re.findall("[a-zA-Z0-9]", "I love China,2000-07-01"))
# ['I', 'l', 'o', 'v', 'e', 'C', 'h', 'i', 'n', 'a', '2', '0', '0', '0', '0', '7', '0', '1']))
3.\d
匹配数字
print(re.findall('\d', "I love China,2000-07-01"))
# ['2', '0', '0', '0', '0', '7', '0', '1']
4.\D
匹配非数字
print(re.findall('\D', "I love China,2000-07-01"))
# ['I', ' ', 'l', 'o', 'v', 'e', ' ', 'C', 'h', 'i', 'n', 'a', ',', '-', '-']
5.\s
匹配空格
print(re.findall('\s', "I love China,2000-07-01"))
# [' ', ' ']
6.\S
匹配非空格
print(re.findall('\S', "I love China,2000-07-01"))
# ['I', 'l', 'o', 'v', 'e', 'C', 'h', 'i', 'n', 'a', ',', '2', '0', '0', '0', '-', '0', '7', '-', '0', '1']
7.\w
匹配单词字符即a-zA-Z0-9
print(re.findall('\w', "I love China,2000-07-01"))
# ['I', 'l', 'o', 'v', 'e', 'C', 'h', 'i', 'n', 'a', '2', '0', '0', '0', '0', '7', '0', '1']
8.\W
匹配非单词字符
print(re.findall('\W', "I love China,2000-07-01")) # 非单词字符
# [' ', ' ', ',', '-', '-']
9.*
“ * ”匹配前一个字符出现0次或者无限次,即可有可无
print(re.findall(r"ab*", "a aB abC abBc"))
# ['a', 'a', 'ab', 'ab']
10.+
" + " 匹配前一个字符出现1次或者无限次,即至少有1次
print(re.findall(r"ab+", "a aB abC abBc"))
# ['ab', 'ab']
11.?
“ ?” 匹配前一个字符出现1次或者0次,即要么有1次,要么没有
print(re.findall(r"ab?", "a aB abC abBc"))
# ['a', 'a', 'ab', 'ab']
12.^
" ^ "匹配字符串开头
print(re.findall('^a', "asdfgh- -123"))
# ['a']
13.$
" $ " 匹配字符串结尾
print(re.findall('3$', "asdfgh- -123"))
# ['3']
本文地址:https://blog.csdn.net/qq_48657881/article/details/107067807