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

1、正则表达式

1、正则表达式是一种用于描述文本模式的工具。它是由字符和特殊符号组成的字符串,描述了模式的重复或者多个字符,于是就可以按照某种模式匹配一系列有相似特征的字符串。它主要的作用是将文本用某种可被计算机识别的模式表现出来,为高级的文本模式匹配、抽取、与/或 文本形式的搜索和替换功能提供了基础。

2、python中通过re模块支持正则表达式,主要包括以下用法:

1)匹配和搜索:re.match(pattern,string)

import re

result = re.match(r'\d+','123abc') #r表示原始字符串,\不代表转义,d表示单个数字(0~9),+表示可以是多个字符,正则表达式和字符串单引号和双引号都可以用。w+表示所有的数字和字符串。

print(result.group()) #输出‘123’

2)替换 re.sub(pattern,repl,string) 用repl替换字符串中所有与pattern匹配的问题

result = re.sub(r'\d+', 'num','abc123def456')

print(result) #输出 'abcnumdefnum'

3)拆分 re.split(pattern, string) 根据正则表达式pattern拆分字符串

result = re.split(r"\d+", "abc123def456")

print(result) #输出['abc,' 'def', ' ']

4)、查找所有匹配项 re.findall(pattern, string)返回一个列表,包含字符串中所有与pattern匹配的部分

result = re.findall(r'\d+','abc123def456')

print(result) #输出['123', '456']

5)、匹配对象:re.match和search方法返回的对象可以提供以下信息:

group():返回匹配的字符串

groups():返回一个包含所有捕获组的元祖

start():匹配字符串的起始索引

end():匹配字符串的结束索引

span():返回一个元祖,包括匹配的开始和结束位置

3、搜索通常是指在字符串或数据中查找某个特定的值或模式。匹配通常是指检查数据是否符合某种模式或规则。

4、compile编译正则表达式会返回一个正则表达式对象。

用法:patten = re.compile(r'a.b')

           patten.match('abcde125j');

5、元字符:

.: 匹配任何字符(除\n)。patten = re.compile(r'a.b')表示匹配任何字符。

^:匹配字符串开头部分。

pattern = re.compile(r'^Hello')
Hello, world!', 'Say Hello', 'Hello']
'Hello, world!' 匹配
'Say Hello' 不匹配
'Hello' 匹配

$:匹配字符串结尾部分。

pattern = re.compile(r'world!$')
'Hello, world!', 'world! Here I come', 'Hello, world'
'Hello, world!' 匹配
'world! Here I come' 不匹配
'Hello, world' 不匹配

 ?:匹配0次或1次前面出现的正则表达式

pattern = re.compile(r'a?')
'a' 匹配 'a'
'aa' 匹配 'a'
'aaa' 不匹配
'' 匹配 ''
'b' 不匹配

{N}匹配N次;{M,N}匹配M~N次;[...]匹配来自字符集的任意单一字符;

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 苹果手机通话记录怎么恢复?已总结了4个方法,快速恢复
  • 【WPF中的图形(Shape)】
  • Redis的内存淘汰策略- allkeys-lru
  • 【Vue】Vue3.5 新特性
  • Gin自定义校验函数
  • 数学建模常见模型(上)
  • 什么是开放式耳机?五大热门开放式耳机大测评!
  • iMeta: 南医大余光创组ggtree最新文章-系统发育树存储与可视化的数据结构
  • 天津自学考试转考流程及免冠照片处理方法说明
  • 解释 CountDownLatch 和 CyclicBarrier 的作用,并给出一个实际的使用场景来说明如何使用这两个类来协调多线程任务?
  • 了解Python中`is`和`==`运算符的区别
  • 怎么才能快速提升网站在谷歌的收录?
  • Mybatis的XML文件中<if>标签内的判断语句equals的坑
  • 知识付费小程序源码轻松实现一站式运营,开启知识变现之旅
  • 【超频单词】梁焕臻《超频语境》3153个超频词~~(速背版)
  • [译]CSS 居中(Center)方法大合集
  • 〔开发系列〕一次关于小程序开发的深度总结
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • Docker下部署自己的LNMP工作环境
  • EventListener原理
  • idea + plantuml 画流程图
  • JavaScript 基本功--面试宝典
  • JavaScript的使用你知道几种?(上)
  • laravel5.5 视图共享数据
  • orm2 中文文档 3.1 模型属性
  • PHP变量
  • php面试题 汇集2
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • ucore操作系统实验笔记 - 重新理解中断
  • 京东美团研发面经
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 你真的知道 == 和 equals 的区别吗?
  • 三栏布局总结
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用 ...
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • # Apache SeaTunnel 究竟是什么?
  • # Kafka_深入探秘者(2):kafka 生产者
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • $refs 、$nextTic、动态组件、name的使用
  • (2)Java 简介
  • (2024最新)CentOS 7上在线安装MySQL 5.7|喂饭级教程
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (Windows环境)FFMPEG编译,包含编译x264以及x265
  • (二)Eureka服务搭建,服务注册,服务发现
  • (附源码)springboot教学评价 毕业设计 641310
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (原創) 未来三学期想要修的课 (日記)
  • (自用)仿写程序
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • ... 是什么 ?... 有什么用处?
  • .bat批处理(四):路径相关%cd%和%~dp0的区别
  • .NET 5.0正式发布,有什么功能特性(翻译)
  • .Net Core 笔试1
  • .NET/C#⾯试题汇总系列:⾯向对象