加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式中的{ } () [] 及re.match re.search

发布时间:2020-12-14 00:40:19 所属栏目:百科 来源:网络整理
导读:1.正则表达式相关说明 () 是为了提取匹配的字符串。表达式中有几个()就有几个相应的匹配字符串。 (s*)表示连续空格的字符串。 (d*)表示连续的数字,与[0-9]+类似 []是定义匹配的字符范围。比如 [a-zA-Z0-9] 表示相应位置的字符要匹配英文字符和数字。[s*]


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 "<stdin>",line 1,in <module>
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 "<stdin>",in <module>
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 "<stdin>",line 1
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 "<stdin>",in <module>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<built-in method group of _sre.SRE_Match object at 0x7fd7534189f0>>>> print r.group(0)p=61234>>> print r.group(1)---无括号无分组Traceback (most recent call last): File "<stdin>",in <module>IndexError: no such group>>> r=re.search('p=([0-9]*)',c)>>> print r.group(1)61234

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读