正则式匹配

6079. 价格减免

pattern = re.compile(r"^\$(\d+\.?\d*)$")
if pattern.match(w):

匹配以$开头用^ \ $,以数字结尾用$,其中整数部分可以有1个或多个数字用\d+,小数点0个或1个用.?,小数部分0个或者多个用\d*

6095. 强密码检验器 II
至少包含 一个特殊字符 。特殊字符为:"!@#$%^&*()-+" 中的一个。使用\W,这个是re模块自带的

class Solution:
    def strongPasswordCheckerII(self, password: str) -> bool:
        if len(password) < 8: return False
        for i in range(1, len(password)):
            if password[i] == password[i - 1]:
                return False
        pattern1 = re.search(r"\d",password)     # <re.Match object; span=(7, 8), match='3'>
        pattern2 = re.search(r"[a-z]",password)  # <re.Match object; span=(1, 2), match='l'>
        pattern3 = re.search(r"[A-Z]",password)  # <re.Match object; span=(0, 1), match='I'>
        pattern4 = re.search(r"\W",password)     # <re.Match object; span=(13, 14), match='!'>
        # print(pattern2)
        if pattern1 and pattern2 and pattern3 and pattern4:
            return True
        else:
            return False

匹配并替换:

score=re.sub("\d/","X",score)
score = re.sub("-", '0', score)

一个方便显示匹配的网站:
https://regex101.com/

1.将两个及以上的换行符换成一个,两个换行符中间可能有\r等不可见字符

content = re.sub(r'(\s*\n\s*){2,}', '\n', content)

2.两个$符号间的文本包含了换行符\n,默认情况下.将不会匹配这些换行符,导致匹配结果不完整或匹配失败。为了使.匹配换行符,需要使用re.DOTALL或re.S标志,这样.就能匹配任意字符,包括换行符了。

content = re.search(r'\$(.*?)\$', value, re.DOTALL).group(1)

参考资料:
使用Python验证常见的50个正则表达式
保龄球计分
python 正则表达式匹配结果如何输出
如何用python正则表达式匹配字符串?

posted @   YTT77  阅读(32)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示