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

物联网服务平台seo排名赚app最新版本

物联网服务平台,seo排名赚app最新版本,网站如何安装源码,云南大学网站建设1. 介绍 正则表达式是一种强大的模式匹配工具,用于处理文本数据。在Python中,我们使用re模块来操作正则表达式。 2. 基本语法 建议先看 "5. re模块函数"了解search和match的区别"和 2.3 特殊字符转义"了解如何应对特殊符号 2.1 字…

1. 介绍

正则表达式是一种强大的模式匹配工具,用于处理文本数据。在Python中,我们使用re模块来操作正则表达式。

2. 基本语法

建议先看
"5. re模块函数"了解searchmatch的区别"和
2.3 特殊字符转义"了解如何应对特殊符号

2.1 字符匹配

  1. .: 匹配任意字符(除了换行符 \n
import re
pattern = re.compile(r"he..o")
result = pattern.match("hello")
print(result.group())  

Output: hello

  • []: 匹配方括号内的任一字符
    pattern = re.compile(r"[aeiou]")
    result = pattern.search("Hello")
    print(result.group()) 
    

Output: e

注意:方括号内的字母之间无需空格,因为空格算一个字符,也会参与匹配

  • |: 匹配两个或多个模式之一
    pattern = re.compile(r"cat|dog")
    result = pattern.search("I love my cat")
    print(result.group())  
    

Output: cat

2.2 重复匹配

  • *: 匹配前一个字符0次或多次

  • +: 匹配前一个字符1次或多次

  • ?: 匹配前一个字符0次或1次

    pattern = re.compile(r"go*gle")
    result = pattern.match("gooogle")
    print(result.group())  
    

    Output: gooogle

2.3 特殊字符转义

使用\转义特殊字符,如.*+

3. 弱进阶用法

敲黑板:groups() 用于返回捕获组的匹配结果元组,
group() 用于返回整个匹配结果或指定编号的捕获组的匹配结果
要注意的是,捕获组编号从 1 开始计数,而不是从 0 开始。

3.1 分组和捕获

使用圆括号 () 进行分组和捕获

pattern = re.compile(r"(\d+)-(\d+)-(\d+)")
result = pattern.match("2023-11-15")
print(result.groups()) 

Output: (‘2023’, ‘11’, ‘15’)
当内容很重要时,捕获以后可以 方便后面引用

3.2 非捕获组

有时我们需要分组但不捕获,可以使用 (?:...)

pattern = re.compile(r"Mr (?:John|Doe)")
result = pattern.match("Mr John")
print(result.group())  

Output: Mr John
不重要的内容无需捕获,可以提高程序性能,减少资源占用

3.3 向后引用

使用\1\2等引用前面捕获的组的内容(再次强调:是内容,而不是格式)

pattern = re.compile(r"(\d+)-\1")
result = pattern.match("2023-2023")
print(result.group()) 

Output: 2023-2023

4. 匹配开始和结尾

  • ^: 匹配字符串的开始

  • $: 匹配字符串的结尾

    pattern = re.compile(r"^Hello")
    result = pattern.match("Hello, World!")
    print(result.group()) 
    

Output: Hello

pattern = re.compile(r"(World!$)")
result = pattern.search("Hello, World!")
print(result.group())

Output: World!

在正则表达式中,^ 用于匹配一行的开头,而不是整个文本的开头,
当使用 ^ 放在正则表达式的开头时,它表示该模式只匹配行的开头位置
换句话说,模式必须在行的开头出现才能匹配成功
例如,如果你有一个多行的字符串,每行以数字开头,你可以使用 ^\d 来匹配每行的开头数字。

$ 匹配字符串的结尾,同理

5. re模块函数

  • re.match(): 从字符串的开头匹配模式
  • re.search(): 在字符串中查找匹配模式的第一个位置
  • re.findall(): 返回字符串中所有匹配的模式
  • re.sub(): 替换字符串中匹配模式的部分

6. 贪婪与非贪婪匹配

在重复匹配时,加上?可以实现非贪婪匹配。

pattern = re.compile(r"<.*?>")
result = pattern.search("<html><head><title>Title</title></head></html>")
print(result.group()) 

Output:

默认情况下,正则表达式是贪婪匹配,也就是它会尽可能地匹配最长的字符串。贪婪匹配会将模式中的量词(如 *、+、?、{})设置为尽可能多地匹配字符。
例如,正则表达式 a.*b 可以匹配 “afoobarb” 中的整个字符串,而不只是 “a” 和 “b” 之间的部分。

相比之下,非贪婪匹配匹配尽可能少的字符。它使用量词的非贪婪版本来实现。在正则表达式中,非贪婪模式的量词是加上 ? 符号。
例如,a.*?b 是一个非贪婪匹配模式,它只匹配 “a” 和 “b” 之间的最短字符串。对于 “afoobarb”,匹配结果将是 “afoob”。

7. 预搜索

  • (?=...): 正向预查

  • (?!...): 负向预查

    pattern = re.compile(r"\d+(?=%)")
    result = pattern.search("42%")
    print(result.group())  
    

Output: 42

正向预查 (?=…) 表示在匹配当前位置之后的内容时,需要满足 … 的条件。但是,正向预查不会消耗字符串,也不会将预查的内容包含在匹配结果中。
负向预查 (?!..) 则表示在匹配当前位置之后的内容时,需要不满足 … 的条件才能匹配成功。与正向预查类似,负向预查也不会消耗字符串,也不会将预查的内容包含在匹配结果中。
相当于先判断后面的字符串是否符合条件决定是否匹配

http://www.wangmingla.cn/news/160019.html

相关文章:

  • 网站和第三方建设什么是网络软文营销
  • 沈阳成创网站建设公司搜狗推广助手
  • 网站建设流程表百度seo排名优化软件化
  • php做网站中下一步按钮刷关键词指数
  • 做国际黄金看什么网站百度网页版链接地址
  • 济南网站设计制作要多久泾县网站seo优化排名
  • 面料出口做哪个网站好百度搜索资源
  • wordpress充值中心福建网络seo关键词优化教程
  • 只做鱼网站灰色行业推广渠道
  • 职高网页设计与制作seo工具不包括
  • 网站导航设计模板源码搜索引擎排名的三大指标
  • 泸州做网站的公司有哪些引擎搜索对人类记忆的影响
  • 如何用腾讯云主机做网站抖音运营推广策划方案
  • 东莞市手机网站建设平台王通seo赚钱培训
  • 模板搭建网站关键字挖掘
  • 工程建设信息官方网站廊坊关键词优化排名
  • 个人网站首页布局站长统计app进入网址新版
  • 帝国cms入门到精通企业门户网站制作建站视频教程近三天发生的重要新闻
  • 哈尔滨网站建设方案策划大连网站seo
  • 宣传网站建设方案以下属于网站seo的内容是
  • 用wordpress付费网站大数据分析
  • 做网站一年多少钱网络营销的特征和功能
  • 织梦网站如何做移动端网页制作网站
  • 学做网站好学吗2021年搜索引擎排名
  • 招聘门户网站有哪些南宁网络优化seo费用
  • 全局右下角弹窗wordpressseo与sem的关系
  • 番禺网站公司淘宝店铺怎么引流推广
  • 网页设计茶叶网站建设安徽搜索引擎优化seo
  • 免费网站后台管理系统模板乔拓云智能建站平台
  • 北京网站建设 都选万维科技重庆seo职位