“正则表达式” 案例教学

"正则表达式" 案例教学
import re

str1 = "acb azb abb a6b aab"

result1 = re.findall("a[a-z]b",str1) #只要是a-z字母中任何一个,都可以被匹配到
result2 = re.findall("a[0-9]b",str1) #只要是0-9数字中任何一个,都可以被匹配到
result3 = re.findall("a[za6]b",str1) #只能是z或a或6这三者中任何一个,才能被匹配到

print(result1)
print(result2)
print(result3)
"正则表达式" 案例教学
"正则表达式" 案例教学
import re

str2 = "我是孙悟空,您可以称呼我为齐天大圣!"

result1 = re.findall("孙悟空|齐天大圣",str2) #要么匹配孙悟空,要么匹配齐天大圣

print(result1)
"正则表达式" 案例教学
"正则表达式" 案例教学
import re

str3 = "\n123456" #①一个转义字符 + 字母n,是一个特殊整体\n,用于表示换行符,因此匹配不到n这个字母。
str4 = "\\n123456" #②处两个转义字符 + 字母n,其中\n是一个特殊整体,再加上一个转义符号\,就将其变为一个普通字母n,因此匹配到了n。
str5 = r"\n123456" #③处其实和②的含义一样,也可以将特殊整体\n,变为一个普通字母n,因此同样可以匹配到n。

result3 = re.findall("n",str3)
result4 = re.findall("n",str4)
result5 = re.findall("n",str5)

print(result3)
print(result4)
print(result5)
"正则表达式" 案例教学
"正则表达式" 案例教学
import re

str6 = "你来自哪里?我来自湖北省"

result7 = re.findall("^你",str6) #一个用于匹配开头,一个用于匹配结尾。只要开头或结尾与要匹配的值一致,才能被匹配到。
result8 = re.findall("^来",str6)

result9 = re.findall("省$",str6)
result10 = re.findall("湖北$",str6)

print(result7)
print(result8)
print(result9)
"正则表达式" 案例教学
"正则表达式" 案例教学
import re

str7 = "abcdaabb"
#点号一般与*号和?号搭配使用。仔细观察①-⑤处的正则表达式,开头和结尾都是a、b,唯一不同的就是它们之间的符号。
result10 = re.findall("a.b",str7) #①处点号表示匹配(除了换行符)任意单个字符。因此,只要开头是a,结尾是b,中间是任何一个单个字符,都会被匹配上。
result11 = re.findall("a*b",str7) #②处*号表示匹配前面一个字符0或多次,在这里 * 号前面是a。因此,只要结尾是b,前面是>=0个a的值,都会被匹配上。
result12 = re.findall("a?b",str7) #③处?号表示匹配前面一个字符最多一次,在这里 * 号前面是a。因此,前面是大一等于0、小于等于1个a的值,都会被匹配上。

result13 = re.findall("a.*b",str7) #④.*组合 ,称为“贪婪匹配”,是因为它会匹配到尽可能多的内容。原本开头是a,那么只要找到b,就是一个返回值。但是贪婪匹配不这样,他会一直朝后面走,直到找到最后一个b才肯罢休,然后返回一个超级长的字符串。
result14 = re.findall("a.*?b",str7) #⑤.*?组合 ,称为“非贪婪匹配”,就是为了制止贪婪匹配而生的。他舅不贪得无厌,只要是开头是a,你后面不是想要b吗,我碰到第一个就给你返回了。

print(result10)
print(result11)
print(result12)
print(result13)
print(result14)
"正则表达式" 案例教学
"正则表达式" 案例教学
import re

str8 = "a321b木头人c"

result15 = re.findall("a(\d+)b([\u4e00-\u9fa5]+)c",str8) #()表示一个组,只要是()中的内容,最后都会被返回。

print(result15)
"正则表达式" 案例教学
"正则表达式" 案例教学
"正则表达式" 案例教学
import re

str1 = "123\n黄同学@#%嘻嘻\t"

result1 = re.findall("\d",str1)
result2 = re.findall("\D",str1)#\d仅匹配数字,\D用于匹配非数字
print(result1)
print(result2)
"正则表达式" 案例教学
"正则表达式" 案例教学
import re

str2 = "\r123\n黄同学@#%嘻嘻\t"

result3 = re.findall("\s",str2)
result4 = re.findall("\S",str2) #\s仅匹配空白字符,\S用于匹配非空白字符

print(result3)
print(result4)
"正则表达式" 案例教学
"正则表达式" 案例教学
import re

str3 = "\r123\n黄同学_@#%嘻嘻\t"

result5 = re.findall("\w",str3) #\w相当于[A-Za-Z0-9_]
result6 = re.findall("\W",str3)

print(result5)
print(result6)
"正则表达式" 案例教学

    原创文章(本站视频密码:66668888),作者:xujunzju,如若转载,请注明出处:https://zyicu.cn/?p=7082

    (0)
    打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
    xujunzju管理者
    上一篇 2021年6月21日 22:51
    下一篇 2021年7月10日 19:33

    发表回复

    登录后才能评论
    联系我们
    邮箱:
    xujunzju@gmail.com
    公众号:
    xujunzju6174
    捐赠本站
    捐赠本站
    分享本页
    返回顶部