当前位置: 首页 > news >正文

网站渠道建设比较火的推广软件

网站渠道建设,比较火的推广软件,高端建筑图片,微信开放品牌正则表达式 什么是正则表达式:简单来说就是通过特殊符号匹配想要的字符串,正则表达式本身就是基于字符串的一套搜索规则,掌握了正则表达式对于字符串有了更深的把握和理解。 概念 官网概念:正则表达式(Regular Expres…

正则表达式

        什么是正则表达式:简单来说就是通过特殊符号匹配想要的字符串,正则表达式本身就是基于字符串的一套搜索规则,掌握了正则表达式对于字符串有了更深的把握和理解。

概念

        官网概念:正则表达式(Regular Expression,简称regex或regexp)是一种用于匹配字符串的模式。它由一系列字符和元字符组成,可以用来检查一个字符串是否包含某种模式、替换字符串中的某些部分,或者从字符串中提取符合某种模式的子串。Python中的正则表达式通过re 模块提供支持。

应用

  • web应用(密码校验、用户名校验、邮箱校验)

  • 网络爬虫

写法

        r'字符或者元字符'

        注意不要丢了r,r丢了就不是正则表达式了(比如\是元字符,加r就是告诉计算机这个是正则表达式不要给我转义)

构成

  • 普通字符:如字母、数字、空格等,它们匹配自身。

  • 元字符:具有特殊意义的字符,用于定义匹配模式。

常见元字符

元字符描述
.匹配除换行符以外的任意单个字符。
^匹配字符串的开头。
$匹配字符串的结尾。
*匹配前面的字符 0 次或多次。
+匹配前面的字符 1 次或多次。
?匹配前面的字符 0 次或 1 次。
{n}匹配前面的字符恰好 n 次。
{n,}匹配前面的字符至少 n 次。
{n,m}匹配前面的字符至少 n 次,至多 m 次。
\d匹配任意数字字符,等价于 [0-9]
\D匹配任意非数字字符,等价于 [^0-9]。                                
\w匹配任意字母、数字或下划线字符,等价于 [a-zA-Z0-9_]
\W匹配任意非字母、数字或下划线字符,等价于 [^a-zA-Z0-9_]
\s匹配任意空白字符(包括空格、制表符、换行符等)。
\S匹配任意非空白字符。
[]匹配括号内的任意一个字符。例如 [abc] 匹配 ab 或 c
|或的意思。|前后只要有满足条件的就可以作为结果返回。
()分组,将多个字符作为一个整体进行匹配。
\转义字符,用于匹配元字符本身。例如 \. 匹配 .

大家一定要练练,顺道可以使用函数感受不同函数,最后在不断的优化和整理判断

import re'''
使用match 函数测试 从字符串的起始位置匹配正则表达式,
match 函数用法:re.match(正则表达式, 要验证的字符串) 
如果匹配成功返回匹配对象,否则返回None。 match 会返回对象注意了后面根据is not None返回True或者False
'''
# .	匹配除换行符以外的任意单个字符。 a.b 匹配 aab、acb,但不匹配 a\nb
result = re.match(r'a.b', 'a\nb') is not None
print('元字符.的使用:%s' % result)
# ^	匹配字符串的开头。 ^abc 匹配 abcdef,但不匹配 defabc
result = re.match(r'^abc', 'abcdef') is not None
print('元字符^的使用:%s' % result)
# $	匹配字符串的结尾。 abc$ 匹配 defabc,但不匹配 abcdef
result = re.match(r'abc$', 'defabc') is not None
print('元字符$的使用:{}'.format(result))
# *	匹配前面的字符 0 次或多次。 ab* 匹配 a、ab、abb、abbb,aab等 不匹配cd ba
result = re.match(r'ab*', 'ba') is not None
print(f'元字符*的使用:{result}')
# +	匹配前面的字符 1 次或多次。 ab+ 匹配 ab、abb、abbb,但不匹配 a,ba
result = re.match(r'ab+', 'ba') is not None
print('元字符+的使用:',result)
# ?	匹配前面的字符 0 次或 1 次,通常用于表示某个字符或分组是可选的。ab? 匹配 a、ab、abbb 不匹配的话 ba
result = re.match(r'ab?', 'abbb') is not None
print('元字符?的使用:',result)
# {n}	匹配前面的字符恰好 n 次。a{3} 匹配 aaa,但不匹配 aa 或 aaaa。
# 这里注意了re.match() 函数用于从字符串的 起始位置 开始匹配正则表达式。如果匹配成功,返回一个匹配对象;如果匹配失败,返回 None
# match函数会返回对象的不能使用这个match来匹配了 否则aaaa会返回错误的
# 完全匹配整个字符串,而不是只匹配开头部分,可以使用 re.fullmatch():
# result = re.match(r'a{3}', 'aaaa') is not None
result = re.fullmatch(r'a{3}', 'aaaa') is not None
print('元字符{n}的使用:',result)
# {n,}	匹配前面的字符至少 n 次。a{2,} 匹配 aa、aaa、aaaa,但不匹配 a。
result = re.match(r'a{2,}', 'a') is not None
print('元字符{n,}的使用:',result)
# {n,m}	匹配前面的字符至少 n 次,至多 m 次。a{2,4} 匹配 aa、aaa、aaaa,但不匹配 a 或 aaaaa。 跟{n}情况一样 需要使用fullmatch
# 给大家留了一个备注大家可以打开使用看下aaaaa的结果
# result = re.match(r'a{2,4}', 'aaaaa') is not None
result = re.fullmatch(r'a{2,4}', 'aaaaa') is not None
print('元字符{n,m}的使用:',result)
# \d	匹配任意数字字符,等价于[0-9]。\d  匹配123、或者任意数字正确 匹配非数字错误123test
# 注意了 这里也是使用了fullmatch下面这种情况是正确的
# result = re.match(r'\d', '123test') is not None 使用findall() 返回字符串中所有匹配的子串,返回一个列表。
result = len(re.findall(r'\d', '123')) > 0
print('元字符\\d的使用:',result)
# \D	匹配任意非数字字符,等价于[^0-9]。\D+ 匹配 abc、@#$ 等。
result =len(re.findall(r'\D', '@#$')) > 0
print('元字符\\D的使用:',result)
# \w	匹配任意字母、数字或下划线字符,等价于[a-zA-Z0-9_]。 \w+ 匹配 abc123、user_name 等。不匹配$$$
result =len(re.findall(r'\w', '$$$')) > 0
print('元字符\\w的使用:',result)
# \W	匹配任意非字母、数字或下划线字符,等价于[^a-zA-Z0-9_]。 \W+ 匹配 $$$,不匹配abc123
result =len(re.findall(r'\W', 'abc123')) > 0
print('元字符\\W的使用:',result)
# \s	匹配任意空白字符(包括空格、制表符、换行符等)。 \s、\t(制表符)、\n(换行符)等。不匹配其他的abc、123
result =len(re.findall(r'\W', '\n')) > 0
print('元字符\\s的使用:',result)
# \S	匹配任意非空白字符。\S+ 匹配 abc、123 等。\S+ 匹配 abc、123  不匹配\s、\t(制表符)、\n(换行符)等
result =len(re.findall(r'\S', '\n')) > 0
print('元字符\\S的使用:{}'.format(result))
# []	匹配括号内的任意一个字符。例如[abc]匹配a、b或c。[abc] 匹配 a、b 或 c 不匹配 def
result =len(re.findall(r'[abc]', 'def')) > 0
print('元字符[]的使用:%s'% result)
# |	或的意思。|前后只要有满足条件的就可以作为结果返回。|a b匹配a或b`。
# 这儿注意了 这个| 会返回['', '', '', ''] 空列表所以需要再加上去空 过滤 list(filter(None, 列表))
# result =len(re.findall(r'|a|ab', 'def')) > 0
result = len(list(filter(None, re.findall(r'|a|ab', 'def')))) > 0
print(f'元字符|的使用:{result}')
# ()分组,将多个字符作为一个整体进行匹配。 (abc)+ 匹配 abc、abcabc 等。不匹配 abdec
result = len(list(filter(None, re.findall(r'(abc)', 'abdec')))) > 0
print(f'元字符()的使用:{result}')
# \	转义字符,用于匹配元字符本身。例如\.匹配.。 \. 匹配 .,\* 匹配 * 匹配:.abc  不匹配: #abc
result = len(list(filter(None, re.findall(r'\.', '#abc')))) > 0
print(f'元字符\\的使用:{result}')

re模块

写法

  示例方法为match其他一样:re.match(r'字符或者元字符',文本)

from re import match,search,findall,finditer,sub,split,compile,fullmatch,escape
# re.match()	re.match(正则表达式, 文本)	从字符串的起始位置匹配正则表达式,如果匹配成功返回匹配对象,否则返回None。
result = match(r'abc','abctest')
print(result)
# re.fullmatch()	re.fullmatch(正则表达式, 文本)	如果整个字符串与正则表达式完全匹配,则返回匹配对象,否则返回None。跟match看 尤其上面之前测试过了
result = fullmatch(r'abc','abctest')
print(result)
# re.search()	re.search(正则表达式, 文本)	扫描整个字符串,返回第一个匹配的对象,如果没有匹配则返回None。
result = search(r'e[a-z]*','hello')
print(result)
# re.findall()	re.findall(正则表达式, 文本)	返回字符串中所有匹配的子串,返回一个列表。
result = findall(r'abc','abcabc')
print(result)
# re.finditer()	re.finditer(正则表达式, 文本)	返回一个迭代器,包含所有匹配的对象。
result = finditer(r'a[a-z]c','abcabcabc')
print(result)
# re.sub()	re.sub(正则表达式, 替换字符串, 文本)	替换字符串中所有匹配正则表达式的部分,返回替换后的字符串。
result = sub(r'acc','abb','acc123456')
print(result)
# re.split()	re.split(正则表达式, 文本)	根据正则表达式分割字符串,返回一个列表。
result = split(r'acc','accabb')
print(result)
# re.compile()	re.compile(正则表达式)	将正则表达式编译成一个正则表达式对象,可以重复使用。
result = compile(r'acc')
print(result)
# re.escape()	re.escape(字符串)	对字符串中的特殊字符进行转义,使其可以安全地用作正则表达式。
result = escape('abc \n test')
print(result)

 常用函数和方法

方法名使用格式描述
re.match()re.match(正则表达式, 文本)从字符串的起始位置匹配正则表达式,如果匹配成功返回匹配对象,否则返回 None
re.search()re.search(正则表达式, 文本)扫描整个字符串,返回第一个匹配的对象,如果没有匹配则返回 None
re.findall()re.findall(正则表达式, 文本)返回字符串中所有匹配的子串,返回一个列表。
re.finditer()re.finditer(正则表达式, 文本)返回一个迭代器,包含所有匹配的对象。
re.sub()re.sub(正则表达式, 替换字符串, 文本)替换字符串中所有匹配正则表达式的部分,返回替换后的字符串。
re.split()re.split(正则表达式, 文本)根据正则表达式分割字符串,返回一个列表。
re.compile()re.compile(正则表达式)将正则表达式编译成一个正则表达式对象,可以重复使用。
re.fullmatch()re.fullmatch(正则表达式, 文本)如果整个字符串与正则表达式完全匹配,则返回匹配对象,否则返回 None
re.escape()re.escape(字符串)对字符串中的特殊字符进行转义,使其可以安全地用作正则表达式。

Python常用正则表达式

用户名验证:

        匹配用户名(字母开头,允许字母、数字、下划线和点)

import re# 正则表达式
pattern = r'^[a-zA-Z][a-zA-Z0-9_.]{3,15}$'
usernames = ["User123", "user_name", "123User", "us"]for username in usernames:if re.match(pattern, username):print(f"{username} 是有效的用户名")else:print(f"{username} 是无效的用户名")

密码验证

  1. 长度通常在 8 到 20 个字符之间。

  2. 必须包含至少一个大写字母、一个小写字母、一个数字和一个特殊字符(如 !@#$%^&*)。

  3. 不能包含空格。

import redef is_valid_password(password):# 密码正则表达式pattern = r'^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*])[A-Za-z\d!@#$%^&*]{8,20}$'return re.match(pattern, password) is not None

手机格式验证

import redef is_valid_phone_number(phone):pattern = r'^1[3-9]\d{9}$'  # 中国大陆手机号码格式return re.match(pattern, phone) is not Noneprint(is_valid_phone_number('13800138000'))  # 输出: True
print(is_valid_phone_number('12345678901'))  # 输出: False

邮箱验证

import redef is_valid_email(email):# 正则表达式pattern = r'^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$'return re.match(pattern, email) is not None

抓取地址

import redef extract_urls(text):pattern = r'https?://(?:[-\w.]|(?:%[\da-fA-F]{2}))+'return re.findall(pattern, text)text = "Visit https://www.example.com or http://example.org for more info."
print(extract_urls(text))  # 输出: ['https://www.example.com', 'http://example.org']
http://www.dtcms.com/a/433405.html

相关文章:

  • 在线设计外卖平台店招石家庄seo网站优化电话
  • 网站结构 网站内容建设杭州租车网站建设
  • wordpress 大型网站一米八效果图网站
  • 手机网站制作费网页设计的基本原则是什么
  • 个人微网站怎么做网络服务是什么
  • 网站建设需求登记表 免费下载wordpress动态标签
  • 文化建设 设计公司网站做相册哪个网站好用吗
  • 怎样建网站 阿里云如何检测网站是否安全
  • 凯里网络公司建设网站一般通过什么查看天气预报
  • 优惠券网站怎么搭建做移动网站优化优
  • 做网站该去哪找客户高级网站开发
  • 学生网站建设可行性分析用php做的网站软件
  • 北京seo课程温州优化推广
  • 用什么做网站开发聊城网站设计公司
  • 精准扶贫网站建设的意义丫丫影院
  • 弄个网站需要多少钱自己有了域名 怎么做网站
  • 个人博客网站logo极速网站开发
  • 网站企业备案素材中国官网
  • wordpress好用的编辑器代码平度网站整站优化外包公司
  • 武大网站建设asp网站程序
  • 网站建设论文模板人才招聘网站模板html
  • 兰州网站的建设wordpress网站怎么加速
  • 建一个信息 类网站网页制作技术基础教程
  • 怎么给网站的照片做超级链接平台公司名字大全
  • 黄石建设信息网站南宁制作网站企业
  • 网站备案个人使用上海发布微信公众号
  • 购物网站要求百度优化
  • 大连开发区做网站的公司安平县外贸网站建设
  • 开源网站 做镜像 如何做做网站练手
  • 如果做网站接口怎么制作链接