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

python的re正则表达式

一、正在表达式的方法():

re是Python中用于处理正则表达式的内置库,提供了许多有用的方法。以下是其中几个常用的方法:

  • re.match(pattern, string): 尝试从字符串的开头匹配一个模式,如果匹配成功则返回匹配对象,否则返回None
  • re.search(pattern, string): 在整个字符串中搜索匹配给定模式的第一个位置,并返回匹配对象。
  • re.findall(pattern, string): 查找字符串中所有与模式匹配的非重叠部分,并返回一个列表。
  • re.sub(pattern, repl, string): 使用指定的替换字符串或函数替换字符串中与模式匹配的所有出现。
  • re.compile(pattern): 将正则表达式编译为模式对象,以便重复使用。

这只是re库中一些常用方法的示例,还有其他方法和参数可以根据具体需求进行使用。详细的使用文档可以在Python官方文档中查找。

二、正则表达式的pattern

以下是一些常用的正则表达式模式:

  1. 匹配数字:\d 或 [0-9],用于匹配任意一个数字字符。
  2. 匹配字母:[a-zA-Z],用于匹配任意一个字母(大小写不区分)。
  3. 匹配单词字符:\w 或 [a-zA-Z0-9_],用于匹配任意一个字母、数字或下划线。
  4. 匹配空白字符:\s,用于匹配任意一个空格、制表符、换行符等空白字符。
  5. 匹配任意字符:.,用于匹配任意一个字符(除了换行符)。
  6. 匹配多个重复字符:
    • *:零次或多次重复(贪婪匹配)。
    • +:一次或多次重复(贪婪匹配)。
    • ?:零次或一次重复。
    • {n}:恰好重复 n 次。
    • {n,}:至少重复 n 次。
    • {n,m}:重复 n 到 m 次。
  7. 匹配边界:
    • ^:字符串的开头。
    • $:字符串的结尾。
    • \b:单词的边界。
  8. 匹配特定字符集合:
    • [...]:匹配方括号内的任意一个字符。
    • [^...]:匹配除了方括号内指定的字符以外的任意一个字符。

三、正则表达式的例子

  1. 匹配邮箱地址:

    • ^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$
  2. 匹配 URL:

    • ^(https?|ftp)://[^\s/$.?#].[^\s]*$
  3. 匹配手机号码(简化版):

    • ^1\d{10}$
  4. 匹配日期(YYYY-MM-DD 格式):

    • ^\d{4}-\d{2}-\d{2}$
  5. 匹配身份证号码(18位):

    • ^\d{17}[\dXx]$
  6. 匹配IP地址:

    • ^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$
  7. 匹配HTML标签(简化版):

    • <([a-zA-Z][a-zA-Z0-9]*)\b[^>]*>.*?</\1>
http://www.lryc.cn/news/155756.html

相关文章:

  • 【算法与数据结构】700、LeetCode二叉搜索树中的搜索
  • SpringBoot v2.7.x+ 整合Swagger3入坑记?
  • 说说你了解的 CDC
  • SpingMvc入门
  • JVM的故事——类文件结构
  • springboot自定义表格(动态合并单元格)
  • C++零碎记录(二)
  • 数学建模:回归分析
  • 数据库(一)
  • 【算法与数据结构】106、LeetCode从中序与后序遍历序列构造二叉树
  • kali 安装cpolar内网穿透实现 ssh 远程连接
  • 算法训练 第一周
  • 软件评测师之码制
  • ubuntu18安装cmake27的方法
  • 通讯编程006——NodeJS OPC UA Client开发简单教程
  • 「高等数学」雅可比矩阵和黑塞矩阵的异同
  • 继承(个人学习笔记黑马学习)
  • ToBeWritten之ATTCK 测评方案
  • JSONUtil详解
  • ArcGIS Maps SDK for JS(一):概述与使用
  • 【STM32】FSMC接口的复用和非复用
  • 操作系统强化认识之Shell编程学习与总结
  • 怎么用conda下载清华源的pytorch(自带cuda的版本)
  • 【ES6】CommonJS模块和ES6模块
  • 两个线程同步执行:解决乱箭穿心(STL/Windows/Linux)
  • Ubuntu18.04更改镜像源(网易,阿里,清华,中科大,浙大)
  • 字节码和机器码的区别
  • go学习part21 Redis和Go(2)
  • 从0到1学会Git(第二部分):Git的本地操作和管理
  • hive lateral view 实践记录(Array和Map数据类型)