【正则表达式上】——03全栈开发——如桃花来

这篇具有很好参考价值的文章主要介绍了【正则表达式上】——03全栈开发——如桃花来。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

介绍:

  • 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特殊字符及这些特定字符的组合,组成一个 “规则字符串”, 这个“规则字符串”用来表达对字符串的一种逻辑过滤。
  • 非python独有
  • python里面是使用re模块来实现的,不需要额外进行安装,是python内置模块

常见匹配模式:

模式 描述
\w 匹配字母数字及下划线
\W 匹配非字母数字下划线
\s 匹配任意空白字符,等价于 [\t\n\r\f].
\S 匹配任意非空字符
\d 匹配任意数字,等价于 [0-9]
\D 匹配任意非数字
\A 匹配字符串开始
\Z 匹配字符串结束,如果是存在换行,只匹配到换行前的结束字符串
\z 匹配字符串结束
\G 匹配最后匹配完成的位置
\n 匹配一个换行符
\t 匹配一个制表符
^ 匹配字符串的开头
$ 匹配字符串的末尾。
. 匹配任意字符,除了换行符,当re.DOTALL标记被指定时,则可以匹配包括换行符的任意字符。
[…] 用来表示一组字符,单独列出:[amk] 匹配 ‘a’,‘m’或’k’
[^…] 不在[]中的字符:[^abc] 匹配除了a,b,c之外的字符。
* 匹配0个或多个的表达式。
+ 匹配1个或多个的表达式。
? 匹配0个或1个由前面的正则表达式定义的片段,非贪婪方式
{n} 精确匹配n个前面表达式。
{n, m} 匹配 n 到 m 次由前面的正则表达式定义的片段,贪婪方式
a|b 匹配a或b
( ) 匹配括号内的表达式,也表示一个组

注 意:

  • .*? 非常常用
  • ^和$表示匹配的位置,一般不含有实际匹配意义

re.match()方法:

re.match()方法尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回None

语法:

变量名 = re.match(正则表达式,待匹配字符串)

常规匹配:

这种匹配一般比较精确而具体

#举个例子:
#导入模块包
import re 
content = 'Hello 123 456789 World_This is a Regex Demo'  # 准备好的待匹配字符串
res=re.match('^Hello\s\d\d\d\s\d{6}\s\w{10}.*Demo$', content) 
print(res) # 返回的是一个匹配对象
print(res.group())  # .group()获取匹配内容
print(res.span())  # 查看匹配长度
print(len(content))  # len统计字符串数量

呈现效果:
【正则表达式上】——03全栈开发——如桃花来

  • 直接打印返回的是一个对象,所以我们要通过group进行输出,group从1开始,没写参数表示全部输出匹配内容。
  • 第二行的意思是,从0开始,长度为43,计算规则(43-0)第二个参数减去第一个参数就是长度。

泛匹配:

匹配很宽泛,根据几个关键词展现匹配的相关内容。

#举个例子:
import re
content = 'Hello 123 4567 World_Thixs is a Regex'
result = re.match("He.*?Regex",content)
print(result.group())#获取匹配内容
print(result.span())#获取匹配长度

呈现效果:
【正则表达式上】——03全栈开发——如桃花来

匹配目标-匹配分组:

为了匹配字符串中具体的目标,可以使用()进行分组匹配

#举个例子:
import re
content = 'qwe Hello 1234567 World_This is a Regex Demo'
# 在匹配目标值的时候 目标值的前后特征一定要给明确(原样保留)(限定)
result = re.match('qwe\s(\w+)\s(\d{7}).*Demo',content)
print(result.group()) # 获取匹配内容
print(result.group(1)) # 提取第一组表达式内匹配到的字符
print(result.group(2)) # 提取第二组表达式内匹配的字符
  • group的数从1开始,括号内的数据就是分组的数据
  • 空格要用\s替换(推荐)
  • +号表示匹配至少一个,通过\w+把字母串"Hello"匹配掉,通过\d{7}表示匹配七个任意数字

贪婪匹配:

尽可能多的去匹配,最大可能匹配多的字符

#举个例子:
import re
# 匹配尽可能多的字符
content = 'Hello 1234567 World_This is a Regex Demo'
result = re.match('^He.*(\d+)\s.*Demo$', content)  
print(result)
print(result.group(1)) 

呈现效果:
【正则表达式上】——03全栈开发——如桃花来

  • 因为采用的是贪婪匹配,所以它会尽可能多匹配,d+只要求至少一个数字,那么贪婪匹配就只会给它留一个。

非贪婪匹配:

尽可能少的去匹配

#举个例子:
import re
# 匹配尽可能少的字符
content = 'Hello 1234567 World_This is a Regex Demo'
result = re.match('^He.*?(\d+).*Demo$', content)
print(result)
print(result.group(1))

呈现效果:
【正则表达式上】——03全栈开发——如桃花来

因为要尽可能少的去匹配,所以d+直接匹配了七个数字,.*? 可以以任意长度,那么0长度也可以。文章来源地址https://www.toymoban.com/news/detail-433339.html

到了这里,关于【正则表达式上】——03全栈开发——如桃花来的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Qt正则表达式使用介绍QRegExp、QRegularExpression

    作者:令狐掌门 技术交流QQ群:675120140 csdn博客:https://mingshiqiang.blog.csdn.net/

    2024年02月03日
    浏览(42)
  • Linux系统三剑客之grep和正则表达式的介绍(一)

    1.正则表达式 目录 1.正则表达式 1.什么是正则表达式 ? 2.正则表达式的使用场景 3.正则表达式字符表示 4.它们之间的区别 2.grep命令 作用: 语法: 说明: 选项:options 重点 实例 3.后面的下次再更新。  1.什么是正则表达式 ? 一个正则表达式就是描述了一个字符串集合的方式

    2024年01月18日
    浏览(65)
  • 软件测试/测试开发丨Python 内置库 正则表达式

    本文为霍格沃兹测试开发学社学员学习笔记分享 原文链接:https://ceshiren.com/t/topic/27058 正则表达式 使用re模块实现正则表达式操作 正则表达式就是记录文本规则的代码 可以查找操作符合某些复杂规则的字符串 把正则表达式作为模式字符串 正则表达式可以使用原生字符串来表

    2024年02月10日
    浏览(72)
  • 前端开发必备:掌握正则表达式,轻松应对复杂的表单验证

    在前端开发中,经常需要处理 URL 地址、校验手机号合法性、提取域名等。正则表达式是一种常用的工具。通过使用正则表达式,我们可以对用户输入进行有效的验证,确保数据的合法性和完整性。本文将介绍一些常见的正则表达式,帮助你在开发中处理匹配的关键信息。

    2024年01月19日
    浏览(58)
  • 【从零学习python 】63.正则表达式中的re.Match类及其属性和方法介绍

    当我们调用 re.match 方法、 re.search 方法,或者对 re.finditer 方法的结果进行迭代时,拿到的数据类型都是 re.Match 对象。 这个类里定义了相关的属性,可以直接让我们来使用。 属性和方法 说明 pos 搜索的开始位置 endpos 搜索的结束位置 string 搜索的字符串 re 当前使用的正则表达

    2024年02月11日
    浏览(62)
  • 【正则表达式】正则表达式常见匹配模式

    模式 描述 w 匹配字母数字及下划线 W 匹配非字母数字下划线 s 匹配任意空白字符,等价于 [tnrf]. S 匹配任意非空字符 d 匹配任意数字,等价于 [0-9] D 匹配任意非数字 A 匹配字符串开始 Z 匹配字符串结束,如果是存在换行,只匹配到换行前的结束字符串 z 匹配字符串结

    2024年02月09日
    浏览(81)
  • 鸿运应用开发学习-发现了一个TextInput组件中使用正则表达式后出现的BUG

    一、起因 最近我正在学习鸿蒙应用开发,准备把之前在安卓系统上开发的一个小应用,使用ArkTs语言,再写一遍,做成原生鸿蒙应用。我的应用需要对液体的体积数据进行换算,对输入的体积和对应的温度参数根据相关的计算公式进行换算,得到该液体在20℃下的标准体积,

    2024年01月16日
    浏览(60)
  • 【SQL-正则】利用正则表达式进行过滤操作(常用正则表达式)

    1、由数字、26个英文字母或者下划线组成的字符串 2、非负整数(正整数 + 0 ) 3、正整数 4、非正整数(负整数 + 0) 5、负整数 6、整数 7、非负浮点数(正浮点数 + 0) 8、正浮点数 9、非正浮点数(负浮点数 + 0) 10、负浮点数 11、浮点数 12、由26个英文字母组成的字符串 13、

    2024年02月12日
    浏览(81)
  • Python正则表达式之学习正则表达式三步曲

            正则表达式描述了一种字符串匹配的模式,可以用来检查一个串的有无某子串,或者做子串匹配替换,取出子串等操作。也可以说正则表达式就是字符串的匹配规则,也可以理解为是一种模糊匹配,匹配满足正则条件的字符串。         1、数据验证(eg:表单验

    2024年02月15日
    浏览(66)
  • Java 之正则表达式语法及常用正则表达式汇总

    正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为 regex、regexp 或 RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。 正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称

    2024年02月09日
    浏览(71)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包