1 正则表达式
1.1 限定符
表达式 | 含义 |
---|
a* | a出现0次或多次 |
a+ | a出现1次或多次 |
a? | a出现0次或1次 |
a{6} | a出现6次 |
a{2,6} | a出现2-6次 |
a{2,} | a出现两次以上 |
1.2 或运算符
表达式 | 含义 |
---|
(a|b) | 匹配a或者b |
(ab)|(cd) | 匹配ab或者cd |
1.3 字符类
表达式 | 含义 |
---|
[abc] | 匹配a或者b或者c |
[a-c] | 同上 |
[a-zA-Z0-9] | 匹配小写字母+大写字母+数字 |
[^0-9] | 匹配非数字字符 |
1.4 元字符
表达式 | 含义 |
---|
\d | 匹配数字字符 |
\D | 匹配非数字字符 |
\w | 匹配单词字符(英文、数字、下划线) |
\W | 匹配非单词字符 |
\s | 匹配空白字符(包括换行符、Tab) |
\S | 匹配非空白字符 |
. | 匹配任意字符(换行符除外) |
\b | 匹配字符边界 |
^ | 匹配行首 |
$ | 匹配行尾 |
1.5 贪婪/懒惰匹配
表达式 | 含义 |
---|
<.+> | 默认贪婪匹配任意字符 |
<.+?> | 懒惰匹配任意字符 |
2. 正则表达式在python中的应用(待补充)
2.1 使用re.sub来用于替换字符串中的匹配项
基本语法:
'''
pattern : 正则中的模式字符串。
repl : 替换的字符串,也可为一个函数。
string : 要被查找替换的原始字符串。
count : 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配。
flags : 编译时用的匹配模式,数字形式。
其中pattern、repl、string为必选参数
'''
re.sub(pattern, repl, string, count=0, flags=0)
实例如下:
import re
sm = "Astrophysics(astro-ph)"
n1 = re.sub(r"(.*)\((.*)\)",r"\2",sm)
print ("括号内的内容 : ", n1)
n2 = re.sub(r"(.*)\((.*)\)",r"\1",sm)
print ("括号外的内容 : ", n2)
执行结果:
括号内的内容 : astro-ph
括号外的内容 : Astrophysics
正则表达式在线测试:link,其他应用详情参考:link.