18 11 23 正则学习

---恢复内容开始---

1  小程序    一     邮箱输入判断  系统

import re


def main():
    email = input("请输入你的邮箱")
    """下面的意思为  ^   开头   从a到z  A到Z 0到9  自动匹配 4到20位数字  由于 .  是什么都可算进去   所以加上  /  来解除他的功能
    最后用  $ 来当作结尾"""
    ret = re.match(r"^([a-zA-Z0-9]){4,20}@(163|126|qq)\.com$",email)
    if ret :
        print("%s是符合规范的"%email)
        user_emali = ret.group()  # 调用group的方法就可以 调用出匹配到的数据
        print(user_emali)

    else :
        print("%s 不是规范的"%email)

if __name__ == '__main__':
    main()

小程序2   正则  提取网址代码  增加了分组功能   (难  了解)

import  re

html_str  = "<h1>hahahha</h1>"


judje = re.match(r"<(?P<name1>\w*)>.*</(?P=name1)>",html_str)  # 用 (?P<name>)   和   (?P=name)  来进行分组定位
html = judje.group()  # 上面的P要  大写
print(html)

简单版 

import  re

html_str  = "<h1>hahahha</h1>"


judje = re.match(r"<(\w*)>.*</\1>",html_str)  # 用  ()()  \2 \1   \1 就是括号一内容  \2 就是第二个括号的内容
html = judje.group()  
print(html)

re 的  高级用法   match 是从头开始搜索   那么 search  是从数据里面找到你想要的 数值

import re

ret = re.search(r"\d+","阅读数量 9999+")

information = ret.group()
print(information)

search  是找到第一个符合要求的值  相对于search来说   findall可以用来找出多个满足的值  并且 不用group  直接返回一个列表

import re

ret = re.search(r"\d+","阅读数量 9999+")

information = ret.group()
print(information)

sub  替换   re.sub(正则出要替换的数据  ,  新的数据  , 被替换的文字列)

import  re

ret  = re.sub(r"\d+","666","python = 9999 ,  a = 20398098 , b = 098098")
print(ret)

---恢复内容结束---

猜你喜欢

转载自www.cnblogs.com/fromlantianwei/p/10010313.html
今日推荐