Python正则表达式(一):元字符
来源:互联网 发布:socket 网络调试工具 编辑:程序博客网 时间:2024/04/29 18:28
Python正则表达式元字符包括:. ^ $ * + ? { [ ] \ | ( )
.
匹配除换行符以外的任意一个字符
^
匹配行首
$
匹配行尾
?
重复0次或1次
等同于{0,1}
*
重复0次或更多次
等同于{0,}
+
重复1次或更多次
等同于{1,}
{n}
重复n次
{n,}
重复n次或更多次
{n,m}
重复n~m次
[a-z]
a~z中任意1个字符
[abc]
a、b、c中任意1个字符
>>> ref = re.compile("[abc]{1,3}")>>> print ref.match("caa").group()caa说明:{1,3},每次都返回[abc]任取一个;而不是[abc]先取一个,然后{1,3};
为什么会是这样呢?随后的文章中,将详细阐述正则的匹配过程。
>>> ref = re.compile("[.$*+?{}|()]")>>> print ref.findall(".")['.']>>> print ref.findall("$")['$']>>> print ref.findall("*")['*']>>> print ref.findall("?")['?']>>> print ref.findall("(")['(']>>> print ref.findall("|")['|']>>> print ref.findall("+")['+']>>> print ref.findall("{")['{']说明:除了"\"、"^"两个元字符,其他元字符在[]里,会被当成普通字符处理
>>> ref = re.compile("[\d]")>>> print ref.match("1").group()1>>> ref = re.compile("[^\d]")>>> print ref.match("a").group()a说明:"\"仍然是转义字符;"^"则是 非,而不是匹配行首
\
转义字符
转义字符+特定字符 = 预设字符(下一篇将会详细阐述预设字符的特殊含义);预设字符被正则表达式赋予了特殊的含义,比如说\d代表[0-9];
不巧,Python的转义字符也是“\”,比如“\n”代表一个换行符;
那么正则表达式为了获得一个字符串“\”,需要用“\\\\”;
>>> ref = re.compile("\\\\")#先Python转义:每个"\\"得到一个"\";接着正则转义"\\"得到"\">>> print ref.match("\\\\").group()\
>>> ref = re.compile(r"\\")>>> print ref.match(r"\\").group()\
()
分组
>>> ref = re.compile("(a(b(c)))d")>>> print ref.match("abcd").group()abcd>>> print ref.match("abcd").group(0)abcd>>> print ref.match("abcd").group(1)abc>>> print ref.match("abcd").group(2)bc>>> print ref.match("abcd").group(3)c>>> print ref.match("abcd").group(4)Traceback (most recent call last): File "<stdin>", line 1, in <module>IndexError: no such group说明:group()默认参数为0,关于分组的更多用法,我们将在后续文章中阐述。
|
或 相当于or
>>> ref = re.compile("[\d]{2}|[\w]{5}")>>> print ref.match("111").group()11>>> print ref.match("aaaaaaa").group()aaaaa
小结:所谓元字符,其实是正则表达式赋予了这些字符,特殊含义。当正则表达式遇到这些字符时,会把它当成XX来解释。元字符表达的含义,一般相对单一。
比如我们想匹配字母或数字,我们可能会写[a-zA-Z0-9],这样写实在麻烦,有没有更简单的表述呢?有:预设字符。
下一篇中,我们就来学习预设字符。
0 0
- Python正则表达式(一):元字符
- 正则表达式总结(一)元字符
- 正则表达式(一) -- 元字符
- python 正则表达式元字符详细介绍
- Python 正则表达式元字符、re 模块
- 正则表达式 学习(一) 元字符
- 精通正则表达式一:元字符
- 正则表达式--元字符
- 正则表达式--元字符
- 正则表达式元字符
- 正则表达式-元字符
- 正则表达式元字符
- 正则表达式元字符
- 正则表达式元字符
- 正则表达式元字符
- 正则表达式元字符
- 正则表达式-元字符
- 正则表达式元字符
- 汤阳光OA视频中JBPM中关于审批流程笔记
- [LeetCode] Pascal's Triangle II
- Codeforces 414C Mashmokh and Reverse Operation 归并排序在线求交换序列后逆序数
- opencv源码解析之(6):hog源码分析
- SVNX使用教程
- Python正则表达式(一):元字符
- 解析叠片式过滤器日常常见问题
- C标签
- visual studio c++ 项目中的(不)需要加入到svn库中的
- Xamarin和微软发起.NET基金会
- ViewController详解
- I Think I Need a Houseboat
- Linux 文件权限相关命令
- C# GridView 排序及分页