正则表达式初窥

2018-03-30  本文已影响0人  把早晨六点的太阳留给我

搜索字符串

match从头匹配 search匹配一次 findall查询所有 【finditer 迭代器形式返回next()显示第几个】

方法

split支持字符串截取
sub 替换字符串
group()表示拿到分组后的结果

import re
str = zhaoyu
re.match(str,"zhaoyu")#显示地址
re.match(str,"zhaoyu").group()#显示字符串
group用法[想提取的数据可用括号括起来]
res = re.match("\d+(567)\d+","152567444")
res
<_sre.SRE_Match object; span=(0, 9), match='152567444'>
 res.group()
'152567444'
res.group(1)[第几个括号Juin写几]
'567'

正则表达式 str = zhaoyu [match从头匹配]
. 匹配任意符号(除了换行符\n)
re.match("....yu",str)
<_sre.SRE_Match object; span=(0, 6), match='zhaoyu'>

\d 表示数字

re.match ("\d","1111ddd")
<_sre.SRE_Match object; span=(0, 1), match='1'>

re.match ("\d\d\d","1111ddd")
<_sre.SRE_Match object; span=(0, 3), match='111'>

re.match("我今年\d\d岁了","我今年55岁了")
<_sre.SRE_Match object; span=(0, 7), match='我今年55岁了'>

re.match("我今年\d\d$","我今年55")
<_sre.SRE_Match object; span=(0, 5), match='我今年55'>

\D 表示非数字

re.match ("\D","@#$%^&")
<_sre.SRE_Match object; span=(0, 1), match='@'>

\w 表示匹配大小写字母

re.match ("\w\w\w","aVw")
<_sre.SRE_Match object; span=(0, 3), match='aVw'>

re.match ("\w\w\w","aV过")【各国语言】
<_sre.SRE_Match object; span=(0, 3), match='aV过'>

\W 表示匹配所有的特殊字符

re.match ("\W\W\W","+-")
<_sre.SRE_Match object; span=(0, 3), match='+-
'>
re.match ("\W\W\W","+-A*")

\s 表示匹配空格 Tab \t

re.match ("\s\s\s"," ")
<_sre.SRE_Match object; span=(0, 3), match=' '>

re.match("\s","\n我今年55")
<_sre.SRE_Match object; span=(0, 1), match='\n'>

re.match("\s","\r我今年55")
<_sre.SRE_Match object; span=(0, 1), match='\r'>

\S 表示匹配非空格

re.match ("\S\S\S","LIU")
<_sre.SRE_Match object; span=(0, 3), match='LIU'>

^ 表示以xx开头

re.match ("^a.*","abcde")
<_sre.SRE_Match object; span=(0, 5), match='abcde'>

re.match ("^a*","abcde")
<_sre.SRE_Match object; span=(0, 1), match='a'>

re.match ("^a.","abcde")
<_sre.SRE_Match object; span=(0, 2), match='ab'>

$ 以什么结尾

re.match (".sd$","abcdsd")
<_sre.SRE_Match object; span=(0, 6), match='abcdsd'>
【以a开头以sd结尾】
re.match ("^a.
sd$","abcdsd")
<_sre.SRE_Match object; span=(0, 6), match='abcdsd'>

\b 匹配单词

re.match(".\bgood\b.","get good day")
<_sre.SRE_Match object; span=(0, 12), match='get good day'

[01123456789] 【0-9】【a-z】只能用于数字字母[0-9a-zA-Z]
(开头是这些中的一个就可以匹配成功)

 re.match ("[0\123456]\w*","0")
<_sre.SRE_Match object; span=(0, 1), match='0'>
>>> re.match ("[0\123456]\w*","5")
<_sre.SRE_Match object; span=(0, 1), match='5'>

re.match("[0-9a-zA-Z]","5aA10")
<_sre.SRE_Match object; span=(0, 1), match='5'>

\\表示
str = “c:\n\b”

* 匹配0-多
+匹配1-多
?匹配可以有,可以没有,但只多1位
{m} 表示m位
{m,} 表示至少m位
{m,n}表示在这个区间内,最少5位,最多8位

写在【】里表示取反
re.match("[^123asc]","123")

re.match("[^123asc]","vvv")
<_sre.SRE_Match object; span=(0, 1), match='v'>

上一篇下一篇

猜你喜欢

热点阅读