首页 > 编程语言 >python的re正则匹配

python的re正则匹配

时间:2024-03-25 16:13:54浏览次数:36  
标签:匹配 python 单词 re 正则 字符串 正则表达式 重复

1、re.findall(r'\bf[a-z]*', 'which foot or hand fell fastest')表示什么意思

这个正则表达式 r'\bf[a-z]*' 用于在给定的字符串中找到以字母 'f' 开头的单词。让我来逐步解释:

  • r 前缀表示这是一个原始字符串(raw string),在Python中使用正则表达式时常见的做法,因为它可以避免反斜杠的转义问题。
  • \b 是一个单词边界匹配器,表示匹配单词的开始或结束。
  • f 表示匹配字母 'f'。
  • [a-z]* 表示匹配任意数量(包括零个)的小写字母。[a-z] 表示匹配任意小写字母,* 表示前面的模式可以出现零次或多次。

所以,re.findall(r'\bf[a-z]*', 'which foot or hand fell fastest') 的意思是在给定字符串中找到以字母 'f' 开头的单词,忽略大小写,输出结果为:['foot', 'fell', 'fastest']

2、re.sub(r'(\b[a-z]+) \1', r'\1', 'cat in the the hat')表示什么含义

这个正则表达式 r'(\b[a-z]+) \1' 在 re.sub() 函数中被用来查找重复的单词,并且将重复的单词替换为单个实例。让我解释一下:

  • (\b[a-z]+):这是第一个捕获组,\b 匹配单词的边界,[a-z]+ 匹配一个或多个连续的小写字母。
  • 空格:表示匹配一个空格。
  • \1:这是反向引用,它表示引用第一个捕获组中的内容。

因此,正则表达式 (\b[a-z]+) \1 匹配重复的单词。例如,在输入字符串 'cat in the the hat' 中,the the 是重复的单词。

re.sub() 函数用于替换匹配的模式。在这里,第一个参数是正则表达式模式,第二个参数是替换的字符串,第三个参数是输入字符串。在替换字符串中,r'\1' 表示使用捕获组中匹配到的内容,即重复的单词,因此将重复的单词替换为单个实例。

所以,re.sub(r'(\b[a-z]+) \1', r'\1', 'cat in the the hat') 的含义是在给定的字符串中查找重复的单词,并将重复的单词替换为单个实例。输出结果是 'cat in the hat'

标签:匹配,python,单词,re,正则,字符串,正则表达式,重复
From: https://www.cnblogs.com/chentiao/p/18094633

相关文章

  • redis自学(24)RESP协议
    Redis是一个CS架构的软件,通信一般分两步(不包括pipeline和PubSub):①客户端(client)向服务端(server)发送一条命令②服务端解析并执行命令,返回响应结果给客户端因此客户端发送命令的格式、服务端相应结果的格式必须有一个规范,这个规范就是通讯协议。而在Redis中采用的是RESP(Redi......
  • Alibaba Cloud Linux 安装 PostgreSQL 数据库
    https://blog.csdn.net/simpledate/article/details/123365889?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-2-123365889-blog-135289834.235%5Ev43%5Epc_blog_bottom_relevance_base4&depth_1-utm_so......
  • 我什么时候应该使用TreeMap 而不是 PriorityQueue?反之亦然?
    引子之前周赛(第390场周赛记录-快手)时遇到一题(题干描述见下图,实现代码见周赛记录),需要保持容器元素的动态有序(即随着插入删除操作后列表始终是有序的)。尝试过很多数据结构或方案,如列表存储然后手动调用Arrays.sort()进行排序、使用优先队列实现大/小根堆的方式,但无一例外全部超时......
  • React Native 应用打包上架
    引言在将ReactNative应用上架至AppStore时,除了通常的上架流程外,还需考虑一些额外的优化策略。本文将介绍如何通过配置AppTransportSecurity、ReleaseScheme和启动屏优化技巧来提升ReactNative应用的上架质量和用户体验。配置AppTransportSecurity在iOS9引入的......
  • 基于 React 的今日热门榜单平台
    前言花了几天时间,收集了微博、抖音、百度等一些热门平台的API接口,使用React搭建了一个热门榜单汇总,全网热点尽览无余。项目信息项目预览:今日热榜前端技术栈:React、Vite、AntdGithub:react-daily-hot效果预览热点平台Logo平台类别接口地址微博热搜榜weibo哔哩哔......
  • ASP.NET Core 图片转 PDF
    前几天用DocNETPDF转图片,现在再用DocNET把图片合并回PDF…使用DocNET:https://github.com/GowenGit/docnetNuget:Install-PackageDocnet.Core合并比拆分简单:publicstaticboolImages2Pdf(List<string>imageList,stringoutputPath){boolr......
  • 基于 Python + Unitest + HwTestReport/BeautifulReport的UI自动化测试框架
    一、框架目录结构概览 二、框架执行流程简介 三、框架目录结构简介 四、测试报告示例 HwTestReport BeautifulReport         ......
  • git rebase详解(图解+最简单示例,一次就懂)
    引言网上有太多讲rebase和merge的文章,但大多都是复制粘贴没有自己的理解,而且很多博客的例子写的过于复杂,让人没兴趣看下去。根据奥卡姆剃刀原则,本文举最简单例子,大白话几句就让你快速掌握rebase的核心原理和用法。本博客将持续修订更新,看完如果还是有疑问,可以评论区留言,我解释到......
  • macbook pycharm:macbook Configure Python Interpreter
     新建或新导入python项目,提示:macbookConfigurePythonInterpreter需要配置PythonInterpreter 找到python3whichpython3 配置PythonInterpreterPycharm-preferences-PythonInterpretershowall:选择已有的(不赘述)oradd新的AddExistingenvironment选择 /u......
  • React Native 应用打包上架
     引言在将ReactNative应用上架至AppStore时,除了通常的上架流程外,还需考虑一些额外的优化策略。本文将介绍如何通过配置AppTransportSecurity、ReleaseScheme和启动屏优化技巧来提升ReactNative应用的上架质量和用户体验。 配置AppTransportSecurity在iOS9引入的......