python之正则表达式re.findall⽤法
正则 re.findall 的简单⽤法(返回string中所有与pattern相匹配的全部字串,返回形式为数组)
语法:findall(pattern, string, flags=0)
第⼀个参数,正则表达式
第⼆个参数,搜索的是那些字符串
第三个参数,匹配的模式,其中re.S使匹配包括换⾏在内的所有字符。findall()函数是逐⾏匹配的。
⼀、正则表达式的含义
懒惰匹配与贪婪匹配。
表达式 .* 的意思很好理解,就是单个字符匹配任意次,即贪婪匹配。
表达式 .*? 是满⾜条件的情况只匹配⼀次,即懒惰匹配
var str = 'Anna is {age} years old,Bob is {age} years old too';
var expr = /{.*?}/g;
console.place(expr, '13'));
命令⾏输出: Anna is 13 years old,Bob is 13 years old too
可以看出,懒惰模式下,只要满⾜条件,就不再向后匹配,以下是贪婪模式:
var str = 'Anna is {age} years old,Bob is {age} years old too';
var expr = /{.*}/g;
console.place(expr, '13'));
命令⾏输出: Anna is 13 years old too
返回string中所有与pattern相匹配的全部字串,返回形式为数组
符号^表⽰匹配以https开头的的字符串返回,
regular_v2 = re.findall(r"^https","/3/whatsnew/3.6.html")
print (regular_v2) # ['https']
⽤$符号表⽰以html结尾的字符串返回,判断是否字符串结束的字符串
regular_v3 = re.findall(r"html$","/3/whatsnew/3.6.html")
print (regular_v3) # ['html']
# [...]匹配括号中的其中⼀个字符
regular_v4 = re.findall(r"[t,w]h","/3/whatsnew/3.6.html")
print (regular_v4) # ['th', 'wh']
“d”是正则语法规则⽤来匹配0到9之间的数返回列表
regular_v5 = re.findall(r"\d","/3/whatsnew/3.6.html")
regular_v6 = re.findall(r"\d\d\d","/3/whatsnew/3.6.html/1234")
print (regular_v5) # ['3', '3', '6']
print (regular_v6) # ['123']
⼩d表⽰取数字0-9,⼤D表⽰不要数字,也就是出了数字以外的内容返回
regular_v7 = re.findall(r"\D","/3/whatsnew/3.6.html")
print (regular_v7)
# ['h', 't', 't', 'p', 's', ':', '/', '/', 'd', 'o', 'c', 's', '.', 'p', 'y', 't', 'h', 'o', 'n', '.', 'o', 'r', 'g', '/', '/', 'w', 'h', 'a', 't', 's', 'n', 'e', 'w', '/', '.',
'.', 'h', 't', 'm', 'l']
“w”在正则⾥⾯代表匹配从⼩写a到z,⼤写A到Z,数字0到9
regular_v8 = re.findall(r"\w","/3/whatsnew/3.6.html")
print (regular_v8)
#['h', 't', 't', 'p', 's', 'd', 'o', 'c', 's', 'p', 'y', 't', 'h', 'o', 'n', 'o', 'r', 'g', '3', 'w', 'h', 'a', 't', 's', 'n', 'e', 'w', '3', '6', 'h', 't', 'm', 'l']
“W”在正则⾥⾯代表匹配除了字母与数字以外的特殊符号
正则匹配的含义
regular_v9 = re.findall(r"\W","/3/whatsnew/3.6.html") print (regular_v9)
# [':', '/', '/', '.', '.', '/', '/', '/', '.', '.']
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论