PythonRegex
pattern¶
^ 匹配字符串的开头
$ 匹配字符串的末尾。
. 匹配任意字符,除了换行符
a| b 匹配a或b
[a-zA-Z0-9] 匹配任何字母及数字
\d 匹配数字。等价于[0-9]。
[aeiou] 匹配中括号内的任意一个字母
[^aeiou] 除了aeiou字母以外的所有字符
\w 匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'。
(\s*) 或者 ([\t ]*) 来匹配任意TAB和空格的混合字符
\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。
\S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
\b 匹配一个单词边界,也就是指单词和空格间的位置。例如, 'er\b' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'。
\B 匹配非单词边界。'er\B' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'。
重复¶
re* 匹配0个或多个的表达式。
re+ 匹配1个或多个的表达式。
re? 匹配0个或1个由前面的正则表达式定义的片段,非贪婪方式
re{ n} 精确匹配 n 个前面表达式。
例如, o{2} 不能匹配 "Bob" 中的 "o",
但是能匹配 "food" 中的两个 o。
re{ n,} 匹配 n 个前面表达式。
例如, o{2,} 不能匹配"Bob"中的"o",
但能匹配 "foooood"中的所有 o。
"o{1,}" 等价于 "o+"。
"o{0,}" 则等价于 "o*"。
re{ n, m} 匹配 n 到 m 次由前面的正则表达式定义的片段,贪婪方式
match exactlly str¶
# find should use \ to represent the (6|12|3)
$ find ~/github/gapbs/ -type f -regex '.*/kron-\(6\|12\|3\).*'
/staff/shaojiemike/github/gapbs/kron-12.wsg
/staff/shaojiemike/github/gapbs/kron-3.sg
/staff/shaojiemike/github/gapbs/kron-3.wsg
/staff/shaojiemike/github/gapbs/kron-6.sg
/staff/shaojiemike/github/gapbs/kron-6.wsg
re.match与re.search的区别¶
re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;
而re.search匹配整个字符串,直到找到一个匹配。
re.match函数¶
从字符串的起始位置匹配
flags¶
多个标志可以通过按位 OR(|)
它们来指定。如 re.I | re.M
被设置成 I 和 M 标志:
group¶
matchObj = re.match( r'(.*) are (.*?) .*', line, re.M|re.I)
if matchObj:
print "matchObj.group() : ", matchObj.group()
print "matchObj.group(1) : ", matchObj.group(1)
print "matchObj.group(2) : ", matchObj.group(2)
else:
print "No match!!"
打印部分内容
re.sub 替换¶
findall¶
返回元组,可以指定开始,与结束位置。
result = re.findall(r'(\w+)=(\d+)', 'set width=20 and height=10')
print(result)
# [('width', '20'), ('height', '10')]
实例:objdump结果只提取汇编的命令¶
import re
# 打开x86汇编代码文件
with open(assembly) as f:
# 读取文件内容
content = f.read()
# 使用正则表达式匹配所有汇编指令,
pattern = r'\b([a-zA-Z]{3,6})\b.*'
# 匹配pattern,但是只将()内结果保存在matches中
matches = re.findall(pattern, content)
# 输出匹配结果
for match in matches:
print(match)
re.split¶
需要进一步的研究学习¶
暂无
遇到的问题¶
暂无
开题缘由、总结、反思、吐槽~~¶
参考文献¶
https://blog.csdn.net/weixin_39594191/article/details/111611346
https://www.runoob.com/python/python-reg-expressions.html