建设一个属于自己网站产品商城网站建设

web/2025/10/7 12:46:43/文章来源:
建设一个属于自己网站,产品商城网站建设,wordpress主题淘宝客,网站推广计划的内容目录 专栏导读 1 正则表达式概述 2 正则表达式语法 2.1 正则表达式语法元素 2.2 正则表达式的分组操作 3 re 模块详解与示例 4 正则表达式修饰符 专栏导读 专栏订阅地址#xff1a;https://blog.csdn.net/qq_35831906/category_12375510.html 1 正则表达式概述 python 的… 目录 专栏导读  1 正则表达式概述 2 正则表达式语法 2.1 正则表达式语法元素 2.2 正则表达式的分组操作 3 re 模块详解与示例 4 正则表达式修饰符 专栏导读  专栏订阅地址https://blog.csdn.net/qq_35831906/category_12375510.html 1 正则表达式概述 python 的正则表达式是什么有哪些内容有什么功能怎么用 Python的正则表达式是一种用于处理字符串的强大工具由re模块提供支持。正则表达式允许你根据特定模式来匹配、搜索、替换和提取文本数据。 正则表达式的基本组成包括 字面字符普通的字符例如a、b等它们直接匹配相应的字符。元字符具有特殊含义的字符例如.匹配任意字符、\d匹配数字等。限定符用于指定模式的匹配次数例如*匹配0次或多次、匹配1次或多次等。字符类用于匹配一组字符中的任意一个字符例如[abc]匹配a、b或c。排除字符在字符类中使用^来排除指定的字符。转义字符用于匹配特殊字符本身例如使用.匹配实际的点号。 正则表达式在文本处理中有很多功能 模式匹配查找字符串中是否包含特定的模式。文本搜索在字符串中搜索匹配模式的第一个出现。查找所有查找字符串中所有匹配模式的出现并返回所有匹配结果的列表。分割根据模式将字符串分割成多个部分。替换将匹配模式的部分替换为指定的字符串。 以下是一个简单的使用正则表达式的示例 import repattern r\d # 匹配一个或多个数字 text There are 123 apples and 456 oranges.# 搜索 search_result re.search(pattern, text) if search_result:print(Found:, search_result.group())# 查找所有 findall_result re.findall(pattern, text) print(findall_result) # Output: [123, 456]上述代码中re.search()函数搜索第一个匹配的数字而re.findall()函数查找字符串中所有匹配的数字。         使用正则表达式时应当确保模式能够正确匹配目标文本同时注意处理可能出现的异常情况。熟练掌握正则表达式可以在文本处理中实现高效和灵活的匹配、搜索和替换操作 2 正则表达式语法 2.1 正则表达式语法元素 行定位符、元字符、限定符、字符类、排除字符、选择字符和转义字符是正则表达式的基本组成部分它们用于描述和匹配字符串的模式。 行定位符 ^匹配字符串的开头。$匹配字符串的结尾。 元字符 .匹配任意字符除了换行符。\d匹配任意数字字符等同于[0-9]。\D匹配任意非数字字符等同于[^0-9]。\w匹配任意字母、数字或下划线字符等同于[a-zA-Z0-9_]。\W匹配任意非字母、数字或下划线字符等同于[^a-zA-Z0-9_]。\s匹配任意空白字符包括空格、制表符、换行符等。\S匹配任意非空白字符。 限定符 *匹配前一个字符零次或多次。匹配前一个字符一次或多次。?匹配前一个字符零次或一次。{n}匹配前一个字符恰好n次。{n,}匹配前一个字符至少n次。{n, m}匹配前一个字符至少n次但不超过m次。 字符类 [...]匹配方括号内的任意一个字符。[^...]匹配除方括号内的字符之外的任意一个字符。 排除字符 ^在字符类内使用表示排除指定字符。 选择字符 |逻辑或匹配两个模式之一。 转义字符 \用于转义特殊字符使其失去特殊含义例如\.匹配实际的点号         这些元字符和特殊符号组合形成了正则表达式的模式使得正则表达式可以描述非常复杂的字符串匹配规则。要使用正则表达式你可以使用Python的re模块提供的函数进行匹配、搜索、替换等操作。熟悉这些基本元素有助于编写更加强大和灵活的正则表达式。 示例 import re# 行定位符 pattern1 r^Hello # 匹配以Hello开头的字符串 print(re.match(pattern1, Hello, World!)) # Output: re.Match object; span(0, 5), matchHellopattern2 rWorld$ # 匹配以World结尾的字符串 print(re.search(pattern2, Hello, World!)) # Output: re.Match object; span(7, 12), matchWorld# 元字符 pattern3 ra.c # 匹配a、任意字符、c print(re.search(pattern3, abc)) # Output: re.Match object; span(0, 3), matchabc print(re.search(pattern3, adc)) # Output: re.Match object; span(0, 3), matchadc print(re.search(pattern3, a,c)) # Output: re.Match object; span(0, 3), matcha,cpattern4 rab* # 匹配a、b出现0次或多次 print(re.search(pattern4, abbb)) # Output: re.Match object; span(0, 1), matcha print(re.search(pattern4, ac)) # Output: re.Match object; span(0, 0), matchpattern5 rab # 匹配a、b出现1次或多次 print(re.search(pattern5, abbb)) # Output: re.Match object; span(0, 4), matchabbb print(re.search(pattern5, ac)) # Output: Nonepattern6 rab? # 匹配a、b出现0次或1次 print(re.search(pattern6, abbb)) # Output: re.Match object; span(0, 1), matcha print(re.search(pattern6, ac)) # Output: re.Match object; span(0, 0), match# 限定符 pattern7 ra{3} # 匹配a出现3次 print(re.search(pattern7, aaa)) # Output: re.Match object; span(0, 3), matchaaa print(re.search(pattern7, aaaa)) # Output: re.Match object; span(0, 3), matchaaa print(re.search(pattern7, aa)) # Output: Nonepattern8 ra{3,5} # 匹配a出现3次到5次 print(re.search(pattern8, aaa)) # Output: re.Match object; span(0, 3), matchaaa print(re.search(pattern8, aaaaa)) # Output: re.Match object; span(0, 5), matchaaaaa print(re.search(pattern8, aaaaaa)) # Output: re.Match object; span(0, 5), matchaaaaa# 字符类和排除字符 pattern9 r[aeiou] # 匹配任意一个小写元音字母 print(re.search(pattern9, apple)) # Output: re.Match object; span(0, 1), matcha print(re.search(pattern9, banana)) # Output: re.Match object; span(1, 2), matcha print(re.search(pattern9, xyz)) # Output: Nonepattern10 r[^0-9] # 匹配任意一个非数字字符 print(re.search(pattern10, hello)) # Output: re.Match object; span(0, 1), matchh print(re.search(pattern10, 123)) # Output: None# 转义字符 pattern11 r\. # 匹配句号 print(re.search(pattern11, www.example.com)) # Output: re.Match object; span(3, 4), match.# 分组 pattern12 r(ab) # 匹配ab出现1次或多次作为一个整体 print(re.search(pattern12, ababab)) # Output: re.Match object; span(0, 6), matchababab输出结果显示了匹配的子字符串的起始位置和结束位置以及匹配的实际字符串内容。 常用元字符 常用限定符   2.2 正则表达式的分组操作 在正则表达式中分组是一种将多个子模式组合在一起并对其进行单独处理的机制。通过使用括号()来创建分组可以实现更复杂的匹配和提取操作。 分组的作用包括 优先级控制可以使用分组来改变子模式的优先级确保正确的匹配顺序。 子模式重用可以对某个子模式进行命名并在后续的正则表达式中引用这个名称实现对同一模式的重用。 子模式提取可以通过分组来提取匹配的子串方便对其中的内容进行进一步处理。 示例 import retext John has 3 cats and Mary has 2 dogs.# 使用分组提取匹配的数字和动物名称 pattern r(\d)\s(\w) # 使用括号创建两个分组一个用于匹配数字另一个用于匹配动物名称 matches re.findall(pattern, text) # 查找所有匹配的结果并返回一个列表for match in matches:count, animal match # 将匹配结果拆分为两个部分数字和动物名称print(f{count} {animal})# 使用命名分组 pattern_with_name r(?PCount\d)\s(?PAnimal\w) # 使用命名分组给子模式指定名称Count和Animal matches_with_name re.findall(pattern_with_name, text) # 查找所有匹配的结果并返回一个列表for match in matches_with_name:count match[Count] # 通过名称获取匹配结果中的数字部分animal match[Animal] # 通过名称获取匹配结果中的动物名称部分print(f{count} {animal})以上代码演示了如何使用分组提取正则表达式中匹配的子串。第一个正则表达式使用了普通分组通过括号将数字和动物名称分别提取出来。第二个正则表达式使用了命名分组通过(?PName...)的语法形式给子模式指定了名称从而在匹配结果中可以通过名称获取对应的子串。这样可以使代码更具可读性方便后续对匹配结果的处理和使用。 上述代码报错如下 TypeError: tuple indices must be integers or slices, not str 这个错误意味着在代码中尝试使用字符串作为元组的索引但元组的索引只能是整数或切片。 当使用元组的时候需要用整数或切片来获取元组中的元素如my_tuple[0] 或 my_tuple[1:3]这些是合法的索引方式。但如果你尝试使用字符串来索引元组中的元素比如my_tuple[key]这就是不合法的因为元组并没有与字符串索引相关联的键值对。 更正用 re.finditer()替代第二个 re.findall()用match.group()获取匹配结果中的内容。 更正后代码 import retext John has 3 cats and Mary has 2 dogs.# 使用分组提取匹配的数字和动物名称 pattern r(\d)\s(\w) # 使用括号创建两个分组一个用于匹配数字另一个用于匹配动物名称 matches re.findall(pattern, text) # 查找所有匹配的结果并返回一个列表for match in matches:count, animal match # 将匹配结果拆分为两个部分数字和动物名称print(f{count} {animal})# 使用命名分组 pattern_with_name r(?PCount\d)\s(?PAnimal\w) # 使用命名分组给子模式指定名称Count和Animal matches_with_name re.finditer(pattern_with_name, text) # 使用re.finditer()查找所有匹配的结果for match in matches_with_name:count match.group(Count) # 通过名称获取匹配结果中的数字部分animal match.group(Animal) # 通过名称获取匹配结果中的动物名称部分print(f{count} {animal}) 注  re.findall()和re.finditer()都是Python中用于正则表达式匹配的函数它们的区别在于返回的结果类型不同。 re.findall(pattern, string): findall函数会返回所有与正则表达式pattern匹配的结果并将它们以列表的形式返回。每个匹配结果将作为一个字符串元素存储在列表中。如果正则表达式中有分组findall只会返回分组中的内容而不返回完整的匹配结果。 re.finditer(pattern, string): finditer函数也会返回所有与正则表达式pattern匹配的结果但不同于findallfinditer返回的是一个迭代器。每个迭代器对象代表一个匹配结果可以通过迭代器的group()方法来获取匹配结果中的内容。如果正则表达式中有分组可以使用group()方法来访问各个分组的内容。 总结起来re.findall()返回一个列表而re.finditer()返回一个迭代器。如果需要处理多个匹配结果使用finditer更加灵活和高效因为它不会一次性返回所有匹配结果而是在需要时按需提供。 3 re 模块详解与示例 re模块是Python中用于处理正则表达式的内置模块提供了一系列函数来进行字符串匹配、搜索、替换和分割等操作。以下是re模块的主要函数 re.compile(pattern, flags0): 编译正则表达式模式返回一个正则表达式对象。如果要多次使用相同的正则表达式可以使用这个函数预编译提高性能。 re.match(pattern, string, flags0): 尝试从字符串的开头开始匹配模式如果匹配成功则返回匹配对象否则返回None。 re.search(pattern, string, flags0): 在整个字符串中搜索匹配模式的第一个出现如果匹配成功则返回匹配对象否则返回None。 re.findall(pattern, string, flags0): 查找字符串中所有匹配模式的出现返回所有匹配结果的列表。 re.finditer(pattern, string, flags0): 查找字符串中所有匹配模式的出现返回一个迭代器可以通过迭代器获取匹配对象。 re.split(pattern, string, maxsplit0, flags0): 根据模式将字符串分割成多个部分并返回一个列表。 re.sub(pattern, replacement, string, count0, flags0): 将匹配模式的部分替换为指定的字符串并返回替换后的字符串。 在上述函数中pattern是正则表达式的模式string是要进行匹配或处理的字符串flags是可选参数用于指定正则表达式的修饰符。其中flags参数可以使用多个修饰符进行组合例如使用re.IGNORECASE | re.MULTILINE来指定忽略大小写和多行匹配。 以下示例展示了re模块中各种函数的使用并涵盖了匹配、搜索、替换、分割、命名分组等功能 import retext John has 3 cats, Mary has 2 dogs.# 使用re.search()搜索匹配模式的第一个出现 pattern_search r\d\s\w search_result re.search(pattern_search, text) if search_result:print(Search result:, search_result.group()) # Output: 3 cats# 使用re.findall()查找所有匹配模式的出现并返回一个列表 pattern_findall r\d findall_result re.findall(pattern_findall, text) print(Find all result:, findall_result) # Output: [3, 2]# 使用re.sub()将匹配模式的部分替换为指定的字符串 pattern_sub r\d replacement X sub_result re.sub(pattern_sub, replacement, text) print(Sub result:, sub_result) # Output: John has X cats, Mary has X dogs.# 使用re.split()根据模式将字符串分割成多个部分 pattern_split r\s*,\s* # 匹配逗号并去除前后空格 split_result re.split(pattern_split, text) print(Split result:, split_result) # Output: [John has 3 cats, Mary has 2 dogs.]# 使用命名分组 pattern_named_group r(?PName\w)\shas\s(?PCount\d)\s(?PAnimal\w) matches_with_name re.finditer(pattern_named_group, text) for match in matches_with_name:name match.group(Name)count match.group(Count)animal match.group(Animal)print(f{name} has {count} {animal})# 使用re.compile()预编译正则表达式 pattern_compile re.compile(r\d) matches_compiled pattern_compile.findall(text) print(Compiled findall result:, matches_compiled) # Output: [3, 2]上述示例展示了使用re模块进行正则表达式的匹配、搜索、替换、分割和命名分组的功能。注释说明了每个步骤的作用和预期输出通过合理使用正则表达式可以快速实现对字符串的复杂处理需求。 4 正则表达式修饰符 在Python的正则表达式中修饰符也称为标志或模式标志是一些可选参数它们可以在编译正则表达式时传递给re.compile()函数或直接在正则表达式字符串中使用用于改变匹配的行为。 以下是常用的正则表达式修饰符 re.IGNORECASE 或 re.I: 忽略大小写匹配。使用该修饰符后可以在匹配时忽略大小写的差异。 re.MULTILINE 或 re.M: 多行匹配。使用该修饰符后^和$分别匹配字符串的开头和结尾还可以匹配字符串中每一行的开头和结尾每行以换行符分隔。 re.DOTALL 或 re.S: 单行匹配。使用该修饰符后.将匹配包括换行符在内的任意字符。 re.ASCII 或 re.A: 使非ASCII字符只匹配其对应的ASCII字符。例如\w将只匹配ASCII字母、数字和下划线而不匹配非ASCII字符。 re.UNICODE 或 re.U: 使用Unicode匹配。在Python 3中默认情况下正则表达式使用Unicode匹配。 re.VERBOSE 或 re.X: 使用“可读性更好”的正则表达式。可以在表达式中添加注释和空格这样可以使正则表达式更易读。 在Python中正则表达式修饰符也称为标志是可选的参数用于调整正则表达式的匹配行为。修饰符可以在正则表达式模式的末尾添加以影响模式的匹配方式。以下是常用的正则表达式修饰符 下面通过示例来演示这些修饰符的用法 import re# 不区分大小写匹配 pattern1 rapple text1 Apple is a fruit. match1 re.search(pattern1, text1, re.I) print(match1.group()) # Output: Apple# 多行匹配 pattern2 r^fruit text2 Fruit is sweet.\nFruit is healthy. match2 re.search(pattern2, text2, re.M) print(match2.group()) # Output: Fruit# 点号匹配所有字符 pattern3 rapple.*orange text3 apple is a fruit.\noranges are fruits. match3 re.search(pattern3, text3, re.S) print(match3.group()) # Output: apple is a fruit.\noranges# 忽略空白和注释 pattern4 rapple # This is a fruit\s # Match one or more whitespace charactersis # followed by is\s # Match one or more whitespace charactersa # followed by a\s # Match one or more whitespace charactersfruit # followed by fruit text4 Apple is a fruit. match4 re.search(pattern4, text4, re.X) print(match4.group()) # Output: apple is a fruit

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/88480.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

北京网站建设最大的公司排名怎么建设一个开源平台网站

1.1队列的定义 队列(queue)简称队,它也是一种操作受限的线性表,其限制为仅允许在表的一端进行插入操作,而在表的另一端进行删除操作 一些基础概念: 队尾(rear) :进行插…

网站的站点建设分为网站开发营业执照申请

本系列教程配套出有视频教程,观看地址:https://www.bilibili.com/video/BV1gV4y1e7Sg 4. 驱动LCD屏(SPI) 本次实验我们在上一次实验的基础上驱动 LCD屏(SPI)。 上次实验我们已经能驱动触摸屏(I2C)并打印触摸点坐标,这次实验我们的目标是点…

南京网站设计公司哪儿济南兴田德润怎么联系sem推广是什么意思呢

WPF ComboBox 使用 ResourceBinding 动态绑定资源键并支持语言切换独立观察员 2021 年 8 月 23 日我们平常在 WPF 中进行资源绑定操作,一般就是用 StaticResource 或者 DynamicResource 后面跟上资源的 key 这种形式,能满足大部分需求。但是有的时候&am…

广西网站建设营销公司可以直接进入网站的正能量网站

目录 1.前言 2.生成指定网段的IP字典自动化脚本 1.前言 在可回显的服务端跨站请求伪造(SSRF)漏洞中,我们通常会利用该漏洞进行内网资产探测。最近正好碰到了。写了一个小脚本。 2.生成指定网段的IP字典自动化脚本 脚本可指定协议、IP段、和端口生成字典。 get-Intranet-A…

廊坊哪里有制作手机网站的自己干电商如何下手

转【作者:一去丶二三里 博客地址:http://blog.csdn.net/liang19890820】 简述 语法高亮是文本编辑器用来显示文本的,特别是源代码,根据不同的类别来用不同的颜色和字体显示。这个功能有助于编写结构化的语言,例如&…

假发外贸网站模板阿里云建网站教程

网络编程是每个开发人员工具箱中的核心部分,我们在学习了诸多Java的知识后,也将步入几个大的方向,Java网络编程就是其中之一。 如今强调网络的程序不比涉及网络的更多。除了经典的应用程序,如电子邮件、Web浏览器和远程登陆外&…

wordpress怎么弄主题sem seo是什么意思呢

为什么要使用事务 日常开发中,很多操作,不是通过一个SQL就能完成的,往往需要多个SQL配合完成 当执行多个SQL操作的时候,如果中间出现了特殊的情况(程序崩溃,系统奔溃,网络断开,主机…

房地产网站建设招商电脑游戏排行榜2020前十名

这是一个以故障为主题的专业级电影故障闪光效果视频过渡pr转场模板。使用这些效果来增强视觉效果。包含视频教程。适用软件:Premiere Pro 2023|分辨率:38402160(4K) 来自PR模板网:https://prmuban.com/36092.html

网站优秀网站地址专业团队英文

老A说的一句话让我很受启发,想要深入了解框架,你要把精力聚焦在架构设计的层面来思考问题。而透彻了解底层原理,最好的笨办法就是根据原理对框架核心进行重建或者说再造。看起来没有捷径,也是最快的捷径。相信很多读者已经看过老A…

没有备案号的网站中铁建设集团集采网站

100. 相同的树 给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 示例 1: 输入: p [1,2,3], q [1,2,3] 输出&#xff1…

沭阳城乡建设局网站怎么看网站做的好不好

洗鞋店小程序,干洗店软件,洗护行业小程序,上门取衣小程序,预约干洗小程序,校园干洗店小程序,工厂干洗店小程序,干洗店小程序开发,成品软件开发 洗衣工厂软件、功能强大! 包含以下主要功能: * 用户选择洗护用品&#x…

网站续费会计分录怎样做百度域名注册查询

把可能的进行二分判断&#xff0c;判断的时候尽量向右取&#xff0c;一直取到不能去为止&#xff0c;这样才有可能成功分割。 判断是否可以把up作为最大值的代码&#xff1a; bool judge(LL up){if(up < Big) return false; //Big是数组中最大值&#xff0c;如果up小于最大值…

网站备案有哪些费用网络科技公司企业文化

单例模式是校招中最常考的设计模式之一. 设计模式其实就是类似于“规章制度”&#xff0c;按照这个套路来进行操作。 单例模式能保证某个类在程序中只存在唯一 一份实例。而不会创建出多个实例&#xff0c;如果创建出了多个实例&#xff0c;就会编译报错。而不会创建出多个实…

别人网站 自己的二级域名受雇去建设网站类网站

在 QML 中&#xff0c;Column 和 Row 是常用的布局元素&#xff0c;用于水平&#xff08;Row&#xff09;和垂直&#xff08;Column&#xff09;排列它们的子元素。以下是这两个元素的主要属性列表&#xff1a; Column 属性 spacing: 子元素之间的垂直间隔。width 和 height:…

人防网站建设与服务济宁那家做网站最好

[算法日志]图论刷题: 沉岛思想的运用 leetcode 695 岛屿最大面积 给你一个大小为 m x n 的二进制矩阵 grid . 岛屿 是由一些相邻的 1 (代表土地) 构成的组合, 这里的「相邻」要求两个 1 必须在 水平或者竖直的四个方向上 相邻. 你可以假设 grid 的四个边缘都被 0&#xff08…

网站当地备案企业网站建设结论

想象一下,一家公司在芬兰 Google Cloud 数据中心的服务器上托管一个网站。对于欧洲用户来说,加载可能需要大约 100 毫秒,但对于墨西哥用户来说,加载需要 3-5 秒。幸运的是,有一些策略可以最大限度地减少远程用户的请求延迟。 这些策略称为缓存和内容交付网络 (CDN),它们是…

网站后台文章字体什么2007做视频网站

目录 网络Internet &#xff08;互联网或互连网&#xff09;Internet&#xff08;因特网&#xff09;待续、更新中 网络 指将分布在不同地理位置的、相同或不同类型的网络通过网络互连设备&#xff08;中继器、网桥、路由器或网关等&#xff09;相互连接&#xff0c;形成一个范…

交易类网站建设功能表怎么下载网站动态图片

1、什么是内存对齐 计算机系统对基本类型数据在内存中放的位置做了限制,它们会要求这些数的首地址是一个数(一般为4和8)的整数倍,我们看下结构体的大小 #include <stdio.h> struct A {char a;int b; };int main() {printf("size of struct A is %d\n", sizeo…

做网站公司还有没有活路dedecms做中英文网站

Swin UNetR&#xff1a;把 UNet 和 Swin Transformer 结合 网络结构使用指南 前置知识&#xff1a;Swin Transformer&#xff1a;将卷积网络和 Transformer 结合 Swin UNetR 结合 Swin Transformer 的上下文建模能力和 U-Net 的像素级别预测能力&#xff0c;提高语义分割任务的…

温州中豪网站建设推广全国最大房产网络平台

简介 前面介绍了scanner可以扫描某个包路径下的所有bean&#xff0c;我们最常用的也是通过ComponentScan指定包路径去扫描&#xff0c;在SpringBoot中也是如此&#xff0c;本文将介绍spring扫描的逻辑 BeanDefinitionRegistryPostProcessor 知道了ComponentScan的作用&#…