正则表达式
Posted 浅色夏沫
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式相关的知识,希望对你有一定的参考价值。
使用的特殊符号:
* 匹配前面出现的正则表达式0次或多次
+ 匹配前面出现的正则表达式1次或多次
? 匹配前面出现的正则表达式0次或1次
re1|re2 匹配正则表达式re1或re2
^ 匹配字符串的开始
$ 匹配字符串的结尾
. 匹配任何字符(换行符除外)
{N} 匹配前面出现的正则表达式出现N次
使用的字符
\d 匹配任何数字,和[0-9]一样(\D是\d的反义:任何非数字符)
\w 匹配任何数字字母字符,和[A-Za-z0-9]相同(\W是\w的反义)
\s 匹配任何空白符,和[\n\t\r\v\f]相同,(\S是\s的反义)
\b 匹配单词边界(\B是\b的反义)
\A 匹配字符串的开始
\Z 匹配字符串的结束
>>> import re
>>> str = ‘abc123def12gh1‘
>>> p1 = re.compile(‘\d+‘)
>>> print p1.findall(str)
[‘123‘, ‘12‘, ‘1‘]
>>>
>>> p2 = re.compile(‘\d‘)
>>>
>>> print p2.findall(str)
[‘1‘, ‘2‘, ‘3‘, ‘1‘, ‘2‘, ‘1‘]
>>>
>>> str = ‘[email protected];[email protected];[email protected] [email protected];[email protected]‘
>>> p3 = re.compile(‘\[email protected]\.com‘)
>>> print p3.findall(str)
[‘[email protected]‘, ‘[email protected]‘]
>>>
>>> p4 = re.compile(‘\[email protected][163|qq]\.com‘)
>>> print p4.findall(str)
[]
>>> p4 = re.compile(‘\[email protected][163|qq]+\.com‘) # \w+ @前面一个或多个数字或字母, \.com \为转义字符
>>> print p4.findall(str)
[‘[email protected]‘, ‘[email protected]‘, ‘[email protected]‘, ‘[email protected]‘]
>>> str = ‘<html><h>title</h><body>xxx</body></html>‘
>>> p5 = re.compile(‘<h>[^<]+</h>‘) # [^<]+表示不是尖括号<
>>> print p5.findall(str)
[‘<h>title</h>‘]
>>>
>>> p5 = re.compile(‘<h>([^<]+)</h><body>([^<]+)</body>‘) #圆括号用来指定找的部分
>>> print p5.findall(str)
[(‘title‘, ‘xxx‘)]
>>> str = ‘xx2016-06-11yy‘
>>> p6 = re.compile(‘\d{4}-\d{2}-\d{2}‘) #\d{4} 数字出现4次
>>> print p6.findall(str)
[‘2016-06-11‘]
>>> p7 = re.compile(‘\d\d\d\d-\d\d-\d\d‘)
>>> print p7.findall(str)
[‘2016-06-11‘]
以上是关于正则表达式的主要内容,如果未能解决你的问题,请参考以下文章