匹配url地址
^:
如果没有在[]里面的时候, 代表以什么开头;
如果在[]里面的时候,代表除了…之外;
import re
url = 'http://www.baidu.com'
pattern = r'^((https|http|ftp|rtsp|mms)?:\/\/)\S+'
# 进行分组的时候, findall方法只返回分组里面匹配到的内容;
print(re.findall(pattern, url))
resObj = re.search(pattern, url)
if resObj:
# group方法会返回匹配的所有内容;
print(resObj.group())
# groups方法返回分组里面的内容;
print(resObj.groups())
匹配日期
\1: 代表的是一定要与第一个分组的内容保持一致, 否则不匹配;
\d{4}(-|/|.)\d{1,2}\1\d{1,2}
(-|/|.): 代表以‘-’或者‘/’或者‘.’为分割匹配
“”"
import re
date = '2019-10-10'
date1 = '2018.2.3'
pattern = r'\d{4}(\-|\/|.)\d{1,2}\1\d{1,2}'
reObj = re.search(pattern, date)
reObj1 = re.search(pattern, date1)
if reObj and reObj1:
print(reObj.group())
print(reObj1.group())
print(reObj.groups())
print(reObj1.groups())
用户名的匹配
字符串是否包含中文 []表示匹配方括号的中任意字符,
\u4e00是Unicode中汉字的开始,\u9fa5则是Unicode中汉字的结束
[\w\-\u4e00-\u9fa5]+
\s:用于匹配单个空格符,包括tab键和换行符;
\S:用于匹配除单个空格符之外的所有字符;
\d:用于匹配从0到9的数字;
\w:用于匹配字母,数字或下划线字符;
\W:用于匹配所有与\w不匹配的字符;
. :用于匹配除换行符之外的所有字符。
import re
# user = '天天向上‘
user = 'gygu_yu456中里寻他千百度,蓦然回首,123w43'
pattern = r'[\w\-\u4e00-\u9fa5]+'
print(re.findall(pattern, user))