正则表达式

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‘]

 

以上是关于正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

PHP 正则表达式总结

正则表达式

正则表达式

正则表达式“或“的使用

正则表达式 验证数字格式 非负数 小数点后保留两位 数字正则 double正则

JS正则表达式详解