正则表达式之通佩符的匹配使用

匹配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 = '西部开源123'
user = 'gygu_yu456中里寻他千百度,蓦然回首,123w43'
pattern = r'[\w\-\u4e00-\u9fa5]+'
print(re.findall(pattern, user))

猜你喜欢

转载自blog.csdn.net/qq_43279936/article/details/88126763