import re
line = "bobby123"
# .:任意字符 *:重复任意多次 $:结尾字符 3$:必须以3结尾
regex_str = "^b.*3$"
if re.match(regex_str, line):
print("yes")
else:
print("no")
test1 = "boooooobbbbbbby123"
# ()与group一起用,提取 ?:非贪婪匹配,从左边开始, +:前面字符至少出现一次 {2,5}:最少和最多出现的次数
regex_str1 = ".*(b.+b).*"
match_obj = re.match(regex_str1, test1)
if match_obj:
# 只取第一个括号里的内容
print(match_obj.group(1))
# |:或的关系,若两个都有,则提取前面一个
test2 = "bobbyoooooobbbbbobby123"
regex_str2 = ".*(bobby123|bobby)"
match_obj2 = re.match(regex_str2, test2)
if match_obj2:
print(match_obj2.group(1))
[]的用法:
1.[abcd]:满足abcd中的任意一个都可以
2.[0-9]:满足区间0-9中的任意一个都可以
3.[^1]:满足不是1都可以,包括字母、字符等
4.[.*]:中括号中的.号 *号等不再代表任意字符,只代表本身字符
\s :代表一个空格
\S:代表中间可以放一个任意字母、数字等(不包括空格)
test3 = "你-好"
regex_str3 = "(你\S好)"
match_obj3 = re.match(regex_str3, test3)
if match_obj3:
print(match_obj3.group(1))
\w:[A-Za-z0-9_] 代表A到Z、a到z、0到9或者_中的任意一个都可以
\W:与\w相反
\u4E00-\u9FA5:代表一个汉字
\d:代表数字