正则式匹配
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正则表达式匹配字符串?]( https://www.php.cn/python-tutorials-451669.html#:~:text=如何用python正则表达式匹配字符串? 这种情况我们可以使用这个 ,%28.%2B%3F%29%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E6%9D%A5%E6%8F%90%E5%8F%96.%20%E4%B8%BE%E4%BE%8B%2C%E4%B8%80%E4%B8%AA%E5%AD%97%E7%AC%A6%E4%B8%B2%22a123b%22%2C%E5%A6%82%E6%9E%9C%E6%88%91%E4%BB%AC%E6%83%B3%E6%8F%90%E5%8F%96ab%E4%B9%8B%E9%97%B4%E7%9A%84%E5%80%BC123%2C%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8findall%E9%85%8D%E5%90%88%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%2C%E8%BF%99%E6%A0%B7%E4%BC%9A%E8%BF%94%E5%9B%9E%E4%B8%80%E4%B8%AA%E5%8C%85%E5%90%AB%E6%89%80%E4%BB%A5%E7%AC%A6%E5%90%88%E6%83%85%E5%86%B5%E7%9A%84list%2C%E4%BB%A3%E7%A0%81%E5%A6%82%E4%B8%8B%3A)

浙公网安备 33010602011771号