正则表达式

2018-08-23  本文已影响0人  Vsion8980

Python中包含正则表达式的模块。

使用前先导入正则表达式模块:

import re

语法:

re.match 从头开始匹配
re.search 匹配包含
re.findall 把所有匹配到的字符放到以列表中的元素返回
re.splitall 以匹配到的字符当做列表分隔符
re.sub 匹配字符并替换

>>> re.search(".","hello world!")
<_sre.SRE_Match object; span=(0, 1), match='h'>

   注意:“字符开头”指要匹配的字符串的开头。

>>> re.search("^h","hello world!")
<_sre.SRE_Match object; span=(0, 1), match='h'>   # <---输出结果
>>> re.search("^a","hello world!")      ##<---无结果输出(不匹配)
>>> re.search("!$","hello world!")
<_sre.SRE_Match object; span=(11, 12), match='!'>

    " * " 号前若有多个字符,语法只对前一个字符有效

>>> re.search("ll*","hello world!")
<_sre.SRE_Match object; span=(2, 4), match='ll'>

>>> re.findall("ab*","cabb3abcbbac")
['abb', 'ab', 'a']

>>> re.findall("ab+","ab+cd+abb+bba")
['ab', 'abb']
>>> re.findall("ab?","ab+cd+abb+bba")
['ab', 'ab', 'a']
>>> re.search("hel{2}","hello world!")
<_sre.SRE_Match object; span=(0, 4), match='hell'>
>>> re.findall("ab{1,3}","abb abc abbcbbb")
['abb', 'ab', 'abb']
>>> re.search("abc|ABC","ABCBabcCD").group()
'ABC'
>>> re.search("(abc){2}a(123|456)c", "abcabca456c").group()
'abcabca456c'
>>> re.search('\d','today20180823')
<_sre.SRE_Match object; span=(5, 6), match='2'>
>>> re.search('\D','today20180823')
<_sre.SRE_Match object; span=(0, 1), match='t'>
>>> re.search("(?P<date>[0-9]{4})(?P<school>[0-9]{4})(?P<id>[0-9]{4})","201603041073").groupdict()
{'date': '2016', 'id': '1073', 'school': '0304'}
上一篇下一篇

猜你喜欢

热点阅读