当前位置: 首页> 汽车> 报价 > 0453牡丹江信息网怎么发布信息_ps网页设计教程简单_海南网站设计_网络营销有哪些内容

0453牡丹江信息网怎么发布信息_ps网页设计教程简单_海南网站设计_网络营销有哪些内容

时间:2025/8/23 21:36:02来源:https://blog.csdn.net/qq_33650655/article/details/144936892 浏览次数: 0次
0453牡丹江信息网怎么发布信息_ps网页设计教程简单_海南网站设计_网络营销有哪些内容

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕

共同探索软件研发!敬请关注【宝码香车】
关注描述

csdngif标识

目录

  • 正则表达式{}和(),pyhton里的正则函数findall解析
    • 📚0. 匹配到的结果就是aa123bb123,但返回给你的是bb123,详细过程如下
    • 📚1.科普在前面的基本知识,但是有必要了解一下:
    • 📚2.正则匹配到的结果如下。(正则匹配到的结果就是aa123bb123)
      • 📘测试1:
      • 📘测试2:
    • 📚3.现在回到这个问答题,print(b) 那为什么,返回的结果是["bb123"]而不是["aa123bb123"]?
    • 📚4. 下面对findall的3种情况进行分析:
      • 📘4.1 没有组的情况下
      • 📘4.2 有一个组的情况下
        • 📖 4.2 .1 当有一个组,没有后面的{}
        • 📖 4.2 .2 当有一个组,有后面的{},并且是2,为例子。
      • 📘 4.3 有多个组的情况下
    • 📚5.总结:
    • 📚6.用findall想得到aa123bb123怎么写?
      • 📘6.1方法1,没有组的写法
      • 📘6.2方法2,有组的写法


📚📗📕📘📖🕮💡📝🗂️✍️🛠️💻🚀🎉🏗️🌐🖼️🔗📊👉🔖⚠️🌟🔐⬇️·正文开始⬇️·🎥😊🎓📩😺🌈🤝🤖📜📋🔍✅🧰❓📄📢📈 🙋0️⃣1️⃣2️⃣3️⃣4️⃣5️⃣6️⃣7️⃣8️⃣9️⃣🔟🆗*️⃣#️⃣

正则表达式{}和(),pyhton里的正则函数findall解析

解决:
a=“aa123bb123cc123”
b=re.findall(r"([a-z]+123){2}",a)
print(b)

输出结果为什么是[“bb123”]而不是[“aa123bb123”]

📚0. 匹配到的结果就是aa123bb123,但返回给你的是bb123,详细过程如下

📚1.科普在前面的基本知识,但是有必要了解一下:

正则表达式(Regular Expression,简称Regex或Reg Exp),是一种文本模式匹配工具,可以匹配普通字符特殊字符等。
正则表达式提供了一种灵活且强大的方式来查找、替换、验证和提取文本数据。

正则表达式并不是Python的一部分。而是一套独立于编程语言,用于处理复杂文本信息的强大的高级文本操作工具。正则表达式拥有自己独特的规则语法以及一个独立的正则处理引擎,我们根据正则语法编写好规则(模式)以后,引擎不仅能够根据规则进行模糊文本查找,还可以进行模糊分割,替换等复杂的文本操作,能让开发者随心所欲地处理文本信息。
正则表达式(Regular Expression,简称Regex或Reg Exp)

📚2.正则匹配到的结果如下。(正则匹配到的结果就是aa123bb123)

根据正则表达式的匹配规则:
字符串为aa123bb123cc123
匹配规则为([a-z]+123){2}
匹配到的结果就是 aa123bb123

📘测试1:

如图,测试结果:

正则表达式测试结果

测试地址:https://tool.chinaz.com/regex/

📘测试2:

另一个测试结果:

正则表达式测试结果2

测试地址:https://tool.oschina.net/regex
匹配结果
匹配结果2

📚3.现在回到这个问答题,print(b) 那为什么,返回的结果是[“bb123”]而不是[“aa123bb123”]?

因为python里的findall
python中的findall

findall的结果取决于模式中捕获的数量,如果没有组,则返回与整个模式匹配的字符串列表。如果只有一个组,则返回与组匹配的字符串列表。如果存在多个组,则返回与这些组匹配的字符串元组列表。非捕获组不会影响结果的形式。

结果取决于模式中捕获组的数量,解析如下:

  1. 没有组的情况下,返回与整个模式匹配的字符串列表
  2. 有一个组的情况下,返回与组匹配的字符串列表
  3. 有多个组的情况下,返回与这些组匹配的字符串元组列表

文档地址:https://docs.python.org/3/library/re.html#re.findall

python里的findall定义及解析

返回结果取决于组的数量

 b = re.findall(r"([a-z]+123){2}", a)
#这里是一个组"一个()",返回一个组

python返回结果受findall的组影响

📚4. 下面对findall的3种情况进行分析:

📘4.1 没有组的情况下

也可以这样理解,这里的这个组与原本正则里的()重复了,冲突了。但是这个是在python里,所以优先使用python里的规则。虽然匹配到的是aa123bb123,但是返回的是bb123。

再详细拆解一下这个地方规则:
当aa123bb123匹配到时,aa123和bb123其实是[a-z]+123和[a-z]+123。也就是说aa123bb123的匹配规则是[a-z]+123[a-z]+123,如果没有组,就全部返回给你。可是你有组,这个组并不是原先正则里的括号,在python里,把这个括号赋予了新的意义。叫组。返回结果受组的影响。

findall在没有组的情况下的输出

你可以亲自测试一下,没有组的结果

import rea = "aa123bb123cc123"
b = re.findall(r"[a-z]+123[a-z]+123", a)  # 这里没有组,没有()
print(b)

总结:在没有组的情况下,找到啥就给你啥。全部给你!

📘4.2 有一个组的情况下

📖 4.2 .1 当有一个组,没有后面的{}
import rea = "aa123bb123cc123"
b = re.findall(r"([a-z]+123)", a)   # 当有一个组,没有后面的{}
print(b)

输出 [‘aa123’, ‘bb123’, ‘cc123’]

 当有一个组,没有后面的{}

📖 4.2 .2 当有一个组,有后面的{},并且是2,为例子。
import rea = "aa123bb123cc123"
b = re.findall(r"([a-z]+123){2}", a)   # 当有一个组,有后面的{}
print(b)

输出 [‘bb123’]

 当有一个组,有后面的{},并且是2,为例子。

你有组,就只能从这个匹配结果中,返回中取出一部分给你
取出哪一部分呢,第一部分不符合因为你是{2},第一部分前面没有东西
第二部分正好合适,所以就给你了第二部分。
同理,咱们把这个字符串扩展一下,添加dd123

import rea = "aa123bb123cc123dd123"  # 字符串添加了dd123
b = re.findall(r"([a-z]+123){2}", a)   # 当有一个组,有后面的{}
print(b)

输出:[‘bb123’, ‘dd123’]

python里的findall在有一个组的情况下的输出
总结:有组的情况下进行二次筛选,输出符合的内容。
在python里,这个花括号“{}”,只能表示规则的次数,不能复制括号"()"的次数。

📘 4.3 有多个组的情况下

import reb = re.findall(r'(\w+)=(\d+)', 'set width=20 and height=10')   # 当有多个组
print(b)

输出:[(‘width’, ‘20’), (‘height’, ‘10’)]

在这里插入图片描述

📚5.总结:

pyton中括号的意义

总结成白话文就是:
1.在没有括号"()“的情况下,全部匹配到了,全部给你!=》“整个模式匹配的字符串列表”。
2.在有一个括号”()“的情况下,虽然全部匹配到了,但要根据匹配规则给你其中的一部分!=》“组匹配的字符串列表”
3.在有多个括号”()"的情况下,虽然全部匹配到了,要根据匹配规则给你其中的一些!这一些是以元组列表返回。 =》“这些组匹配的字符串元组列表”

总结成一句就是:
当没有括号时,全部返给你,当有括号时,根据括号进行二次筛选,返给你对应的值,这里的括号是二次筛选的意思。

在python里,这个括号,有二次筛选、返回、提取的意思。
在python里,这个花括号“{}”,只能表示规则的次数,不能复制括号"()"的次数。

📚6.用findall想得到aa123bb123怎么写?

📘6.1方法1,没有组的写法

import rea = "aa123bb123cc123"
b = re.findall(r"[a-z]+123[a-z]+123", a)   # 这里没有组,没有()
print(b) 

输出

在这里插入图片描述

📘6.2方法2,有组的写法

import rea = "aa123bb123cc123"
b = re.findall(r"([a-z]+123[a-z]+123)", a)   # 这里没有组,没有()
print(b)

输出

有组的写法

到此这篇文章就介绍到这了,更多精彩内容请关注本人以前的文章或继续浏览下面的文章,创作不易,如果能帮助到大家,希望大家多多支持宝码香车~💕,若转载本文,一定注明本文链接。


整理不易,点赞关注宝码香车

更多专栏订阅推荐:
👍 html+css+js 绚丽效果
💕 vue
✈️ Electron
⭐️ js
📝 字符串
✍️ 时间对象(Date())操作

关键字:0453牡丹江信息网怎么发布信息_ps网页设计教程简单_海南网站设计_网络营销有哪些内容

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: