@myles
2017-04-13T16:29:48.000000Z
字数 2021
阅读 934
python正则匹配
>>> str1 = 'imooc python'
>>> str1.find
>>> str1.startswith
>>> str1.endswith
>>> regex = re.compile(r'imooc') #将正则编译为一个re对象;
>>> match = regex.match(str1) #然后使用re.match的match方法进行正则匹配的查找>>> match.group(0)
>>> match.groups
>>> match.span
操作符 | 说明 | 实例 |
---|---|---|
. | 表示任何单个字符串匹配(除了\n) | |
[] | 字符集:即对单个字符的匹配给出取值范围 | [abc]表示a、b、c,[a-z]表示a-z单个字符 |
[^] | 非字符集:单字符串“字符集”取反,对单个字符给出排除范围 | [^abc]表示除a、b、c以外,可匹配任何单字符 |
\d/\D | 匹配数字(等同[0-9])/匹配非数字 | |
\w/\W | 匹配单个单词字符[a-zA-Z0-9]/非单词字符匹配 | |
\s/\S | 匹配空白/非空白匹配 |
[abc]单字符匹配字符串'a'
>>> match = re.match(r'{[abc]}','{a}')
>>> match.group(0)
[abc]单字符匹配字符串'd'失败
>>> match = re.match(r'{[abc]}','{d}')
>>> match.group(0)
[a-z]单字符字符串'd'
>>> match = re.match(r'{[a-z]}','{d}')
>>> match.group(0)
[a-zA-Z]单字符匹配字符串'D'
>>> match = re.match(r'{[a-zA-Z]}','{D}')
>>> match.group(0)
[a-zA-Z0-9]单字符匹配字符串'0'
>>> match = re.match(r'{[a-zA-Z0-9]}','{0}')
>>> match.group(0)
[\w]单字符匹配字符串'0'
>>> match = re.match(r'[\w]','{0}')
>>> match.group(0)
[\w]单字符匹配字符串' '失败
>>> match = re.match(r'{[\w]}','{ }')
>>> match.group(0)
[\W]单字符匹配字符串' '
>>> match = re.match(r'{[\W]}','{ }')
>>> match.group(0)
1.单个字符串'0'的匹配
>>> match = re.match(r'.','0')
>>> match.group(0)
'0'
2.任意字符的匹配
>>> match = re.match(r'.*','asdf-34-*23-')
>>> match.group(0)
'asdf-34-*23-'
操作符 | 说明 | 实例 |
---|---|---|
? | 表示匹配前一个字符0次或者1次 | abc? 表示可匹配ab、abc |
+ | 表示匹配前一个字符至少1次 | abc+ 表示可匹配abc、abcc、abccc、abcccc等 |
* | 表示匹配前一个字符0次或0次以上 | abc* 表示可匹配ab、abc、abcc、abccc、abcccc等 |
{m} | 表示匹配前一个字符m次 | ab{2}c 表示匹配 abbc |
{m,n} | 表示匹配前一个字符m到n次 | ab{2,3}c 表示匹配abbc、abbbc |
1.整数匹配
>>> match = re.match(r'-?\d*','-34234')
>>> match.group(0)
'-34234'
#以上正则匹配正确;>>> match = re.match(r'-?\d*','012039')
>>> match.group(0)
'012039'
#以上正则匹配错误,因为0开头的数字不是整数修改正则,重新运行匹配
>>> match = re.match(r'-?[1-9]\d*','012039')
>>> type(match)
<class 'NoneType'>
>>> match.group(0)
Traceback (most recent call last):
File "<pyshell#31>", line 1, in <module>
match.group(0)
AttributeError: 'NoneType' object has no attribute 'group'
操作符 | 说明 | 实例 |
---|---|---|
| | 匹配左右任意一个字符串 | 123 |
( ) | 分组标记,内部职能使用\ | 操作符 |
操作符 | 说明 | 实例 |
---|---|---|
^ | 匹配字符串开头 | ^abc 表示匹配一个以abc为开头的字符串 |
$ | 匹配字符串结尾 | @imooc.com$ 表示一个以@imooc.com为结尾的字符串; |