正则表达式中的{}()[]及re.matchre.search
1.正则表达式相关说明
为什邡等地区用户提供了全套网页设计制作服务,及什邡网站建设行业解决方案。主营业务为做网站、成都网站制作、什邡网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
() 是为了提取匹配的字符串。表达式中有几个()就有几个相应的匹配字符串。
(\s*)表示连续空格的字符串。
(\d*)表示连续的数字,与[0-9]+类似
[]是定义匹配的字符范围。比如 [a-zA-Z0-9] 表示相应位置的字符要匹配英文字符和数字。[\s*]表示空格或者*号。
{}一般用来表示匹配的长度,比如 \s{3} 表示匹配三个空格,\s[1,3]表示匹配一到三个空格。
(0-9) 匹配 '0-9′ 本身。 [0-9]* 匹配数字(注意后面有 *,可以为空)[0-9]+ 匹配数字(注意后面有 +,不可以为空){1-9} 写法错误。
[0-9]{0,9} 表示长度为 0 到 9 的数字字符串
关于[]* 与[]+的示例:
[]*可以返回控制,即可以找不到值,但是[0-9]+不可以为空,如果为空返回错误
>>> c='GET /diviner?pin=1123066825_m&p='
>>> r=re.search('p=([0-9]+)',c)
>>> print r.group(1)
Traceback (most recent call last):
File "
AttributeError: 'NoneType' object has no attribute 'group'
>>> print r
None
>>> r=re.search('p=([0-9]*)',c)
>>> print r.group(1)
----此处返回为空
2.re mathc search说明
match()函数只检测RE是不是在string的开始位置匹配,
search()会扫描整个string查找匹配;
>>> a='123aaabcabcabc'
>>> import re
>>> re.search('abc',a)
<_sre.SRE_Match object at 0x7fd7534184a8>
>>> re.mathc('abc',a)
Traceback (most recent call last):
File "
AttributeError: 'module' object has no attribute 'mathc'
>>> re.match('abc',a)
>>> b=re.match('abc',a)
>>> print b
None
>>> b=re.match('1',a)
>>> pint b
File "
pint b
^
SyntaxError: invalid syntax
>>> print b
<_sre.SRE_Match object at 0x7fd7534188b8>
()在对于group groups的作用---主要起到分组的作用
>>> c='GET /diviner?pin=1123066825_m&p=61234'
>>> r=re.search('p=((\d*))',c)
>>> print c.group(0)
Traceback (most recent call last):
File "
AttributeError: 'str' object has no attribute 'group'
>>> print r.group(0)
p=61234
>>> r=re.search('p=((\d*))',c)
>>> r=re.search('p=([0-9]*)',c)
>>> r=re.search('p=[0-9]*',c)
>>> print r.group
>>> print r.group(0)
p=61234
>>> print r.group(1)---无括号无分组
Traceback (most recent call last):
File "
IndexError: no such group
>>> r=re.search('p=([0-9]*)',c)
>>> print r.group(1)
61234
分享文章:正则表达式中的{}()[]及re.matchre.search
链接URL:http://ybzwz.com/article/jocigg.html