一、单字符匹配:
1、 '.' 表示匹配字符串中的首个字符为任意字符,打印输出 :<re.Match object; span=(0, 1), match='w'>
import re
# 表示匹配任意一个字符
print(re.match('.', 'wqeq'))
2、 '\d' 表示匹配的字符串中的首个字符是包含在<0-9>中,输出:<re.Match object; span=(0, 1), match='1'>
# 表示0-9任意一个数字
print(re.match('\d', '12sdada'))
3、'\D' 表示匹配的字符串中的首个字符为非数字字符,这里\D打印出来的就是None,因为字符串的第一个字符是数字,匹配不上所以输出:None。
# \D 表示非数字
print(re.match('\D', '12sdada'))
4、'\s ' 表示匹配的字符串中的首个字符为空白字符 \t为 tab键 属于空白字符,输出 :<re.Match object; span=(0, 1), match='\t'>
# 表示空白字符 格式符都属于空白字符
print(re.match('\s', '\t'))
5、'\S' 表示匹配的字符串中的首个字符为非空白字符,所以只要不是空白字符都能正确匹配。 这里输出:<re.Match object; span=(0, 1), match='\\'>。这里为什么输出双斜杠,是因为python在字符串中斜杠属于转义符,为了让re模块能正确识别到斜杠,我们需要将字符斜杠转义一下。
# 表示非空白
print(re.match('\S', '\\'))
6. '\w'表示匹配的字符串中首个字符包含 [A-Z a-z 0-9_ ],所以这里能直接输出:<re.Match object; span=(0, 1), match='_'>
# 表示大小字母 数字 或者下划线
print(re.match('\w', '_'))
7、'\W' 匹配是除[A-Z a-z 0-9_ ]以外的字符,如标点符号等,这里会输出:<re.Match object; span=(0, 1), match=','>
# \W 表示除大小字母 数字 或者下划线以外
print(re.match('\W', ','))
二、字符集匹配:
那在上面学习了单字符匹配,我们在日常的编写脚本等工作中更多的是对字符集的匹配:
1、一个中括号仅为一个字符的匹配,当我们像下面这样进行范围匹配的时候,匹配值输入的是ab,但匹配出来的值不会是ab。所以这里输出 <re.Match object; span=(0, 1), match='a'> 也是为单字符,
# 匹配一定范围内
print(re.match('[abcd]', 'ab'))
2、当想对值进行取反时可以用到^,也就是shift+6,对需要匹配的值进行一个反向匹配。匹配出来的值不包含在a-d之间。输出为e。
# ^取反
print(re.match('[^a-d]', 'efw'))
3、所以接下来要写字符集匹配函数。
1)或 当匹配值满足中括号内任意一个条件时,则输出匹配:3
# '[0-9A-Za-z]' 关系为或者
print(re.match('[0-9A-Za-z]', '3a'))
2)与 对多个字符进行匹配时,匹配条件用多个中括号连接,满足条件即可输出:1gX
# 多个单字符同时匹配'[0-9][a-z]'
print(re.match('[0-9][a-z][A-Z]', '1gX'))
之前的工作中也没想着积累什么东西,后续没事的时候也会写一下吧。测试小菜鸡一枚。