目录
从几年前在使用.NET语言的时候使用正则,到现在,有的时候用的多一些,有的时候用的比较少,不过,都没有离开正则,毕竟工作中很多内容都是在和字符串打交道。
简介
简介方面我不再罗列,如果你想简单的学习正则表达式,你可以去看一下 正则表达式30分钟入教程
如果你对这些内容感兴趣,想系统的学习一下正则,你可以去看下面的博客:
- [ ] 字符组(Character Classes)
- 正则基础之——捕获组(capture group)
- 正则基础之——小数点
- 正则基础之——NFA引擎匹配原理
- 正则基础之——环视
- 正则基础之——/b 单词边界
- 正则应用之——日期正则表达式
- .NET正则基础之——.NET正则匹配模式
- .NET正则基础之——平衡组
- 正则基础之——非捕获组
- 正则基础之——反向引用
- .NET正则基础——.NET正则类及方法应用
- .NET正则基础之——正则委托
- 正则基础之——贪婪与非贪婪模式
- 正则应用之——逆序环视探索
- 正则匹配原理之——逆序环视深入
- 正则基础之——神奇的转义
- 正则表达式学习参考——总结
- C++中三种正则表达式比较(C regex,C ++regex,boost regex)
- 令人惊艳的正则表达式
- Python正则表达式指南
Python正则
在日常使用正则的时候无非就几个模块而已,下面列举一下:
match
import re
example = "Hello World, I am 24 years old."
pattern = re.compile(r"(\S+) (\S+) (\S*) (\S+) (\d+) (\S+) (\S+)")
m = pattern.match(example)
print m.group(0) # Hello World, I am 24 years old.
print m.group(1) # Hello
print m.group(2) # World
m = re.match(r'(\S+) (\S+) (\S*) (\S+) (\d+) (\S+) (\S+)', example)
print m.group()
findall
import re
example = "Hello World, I am 24 years old."
pattern = re.compile(r"\d+")
m = pattern.findall(example)
print m # ['24']
sub
import re
example = "Hello World, I am 24 years old."
m = re.sub(r"\d+", "48", example)
print m
import re
example = "Hello World, I am 24 years old."
m = re.sub(r"(\d+)", lambda x: "[" + x.group(1) + "]", example)
print m # Hello World, I am [24] years old.
def my_replace(match):
return "[" + match.group(1) + "]"
m = re.sub(r"(\d+)", my_replace, example)
参考资料
https://docs.python.org/2/library/re.html https://docs.python.org/2/howto/regex.html https://docs.python.org/2.7/library/re.html