1.1、原子:正则表达式中最基本的组成单位。常见原子有一下分类:
- 普通字符作为原子
- 非打印字符作为原子
- 通用字符作为原子
- 原子表
1.1.1、普通字符作为原子
普通字符如:数字、大小写字母、下划线等都可以作为原子使用。
示例:
import re # 导入模块
pattern = "tbquan" # 普通字符作为原子
str = "http://www.tbquan.cn"
result = re.search(pattern,string) #re模块里面的search()函数
print(result) # 打印匹配的结果
1.1.2、非打印字符作为原子
非打印字符:指的是在字符串中用于格式控制的符号,比如:换行符、制表符等等,常见非打印字符:
- \n(用于匹配一个换行符)
- \t (用于匹配一个制表符)
示例:
import re
pattern = "\n"
str = '''http://www.tbquan.cn
http://www.leiqiankun.com'''
result = re.search(pattern, str)
print(result)
1.1.3、通用字符作为原子
通用字符:即可以匹配一类字符的字符。
- \w 匹配任意一个字符、数字或者下划线
- \W 匹配除字母、数字和下划线以外的任意一个字符
- \d 匹配任意一个十进制数
- \D 匹配除十进制数以外的任意一个其他字符
- \s 匹配任意一个空白字符
- \S 匹配除空白符以外的任意一个其他字符
示例:
import re
pattern = "\w\dtbquan\w"
str = "agdhgahdghstbquan_cn"
result = re.search(pattern, str)
print(result)
1.1.4、原子表
原子表:定义一组平等的原子,然后匹配时会取出该原子表中的任意一个原子进行匹配。原子表使用[]中括号表示,比如[abc]表示一个原子表,正则表达式为[abc]tbquan可以匹配出atbquan,btbquan,ctbquan,而[^abc]则表示除了中括号里面的原子外都可以匹配。
示例:
import re
pattern1 = "\w\dtbquan[abc]\w"
pattern2 = "\w\dtbquan[^abc]\w"
str = "fsdfdsfsd123tbquanf_t"
result1 = re.search(pattern1, str)
result2 = re.search(pattern, str)
print(result1)
print(result2)
1.2、元字符:正则表达式中具有一些特殊含义的字符。
- . 匹配除换行符以外的任意字符
- ^ 匹配字符串的开始位置
- $ 匹配字符串的结束位置
匹配0次,1次或者多次前面的原子
- ? 匹配0次或者1次前面的原子
匹配1次或者多次前面的原子
- {n} 前面的原子恰好出现n次
- {n,} 前面的原子至少出现n次
- {n,m} 前面的原子至少出现n次,至多出现m次
- | 模式选择符
- () 模式单元符
1.2.1 任意匹配元字符
"." :匹配一个除换行符以外的任意字符。
示例:
import re
pattern = ".tbquan..."
str = "adsasatbquan.cnas"
result = re.search(pattern, str)
print(result)
1.2.2 边界限制元字符
"^"匹配字符串的开始,"$"匹配字符串的结束。
示例:
import re
pattern1 = "^abc"
pattern2 = "def$"
str = "abcdefghdef"
result1 = re.search(pattern,str)
result2 = re.search(pattern,str)
print(result1)
print(result2)
1.2.3 限定符
常见限定符包括:*、?、+、{n}、{n,}、{n,m}
示例:
import re
网友评论