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

入门re 正则表达式

1.字符匹配:

a:匹配字符 a

abc:匹配字符串 abc

import reresult = re.search(r"a", "abcabcd", re.I)
print(result, type(result), result.start(), result.end(), result.group())result = re.findall(r"abc", "abcabcd", re.I)
print(result)

2.特殊字符: 

.:匹配除换行符外的任何单个字符。

import re
result = re.findall(r".", "abc123=+^$( &% \n", re.S)
print(result)

\d:匹配任何数字,相当于 [0-9]

import re
result = re.findall(r"\d", "123abc=+*&%#_(^@!")
print(result)

\D:匹配任何非数字字符。

import re
result = re.findall(r"\D", "123abc=+*&%#_(^@!")
print(result)

\w:匹配任何字母数字字符,相当于 [a-zA-Z0-9_]

import re
result = re.findall(r"\w", "123abc=+*&%#_(^@!")
print(result)

\W:匹配任何非字母数字字符。

import re
result = re.findall(r"\W", "123abc=+*&%#_(^@!")
print(result)

\s:匹配任何空白字符(空格、制表符、换行符等)。

import re
result = re.findall(r"\s", " 123 abc =+*& %#_(^@!")
print(result)

\S:匹配任何非空白字符。

import re
result = re.findall(r"\S", " 123 abc =+*& %#_(^@!")
print(result)

3.字符集:

[abc]:匹配字符 ab 或 c 中的任何一个。

import re
result = re.match(r"[abc]", "abcabcd")
print(result)

[a-z]:匹配小写字母中的任何一个。

[A-Z]:匹配大写字母中的任何一个。

[0-9]:匹配任何数字。

import reresult = re.findall(r"[123]", "12345abcdef")
print(result)result = re.findall(r"[1-5a-f]", "12345abcdef")
print(result)

4.字符集的否定:

[^abc]:匹配除 ab 和 c 之外的任何字符。

import re
result = re.findall(r"^abc", "abc123=+^$ \na( &% ", re.M)
print(result)

5.数量词:

*:匹配前面的元素零次或多次。

import reresult = re.findall(r"\d*", "12345")
print(result)result = re.findall(r"\d*?", "12345")
print(result)

+:匹配前面的元素一次或多次。

import reresult = re.findall(r"\d+", "12345")
print(result)result = re.findall(r"\d+?", "12345")
print(result)

?:匹配前面的元素零次或一次。

import reresult = re.findall(r"\d?", "12345")
print(result)result = re.findall(r"\d??", "12345")
print(result)

{n}:匹配前面的元素正好 n 次。

{n,}:匹配前面的元素至少 n 次。

{n,m}:匹配前面的元素至少 n 次,但不超过 m 次。

import reresult = re.findall(r"\d{3}", "12345")
print(result)result = re.findall(r"\d{2,4}?", "12345")
print(result)

6.位置与边界:

^:匹配输入字符串的开始位置。(re.S,re.M 可以多行检测)

import re
result = re.findall(r"^a", "abc123=+^$ \na( &% ", re.M)
print(result)

$:匹配输入字符串的结束位置。

import re
result = re.findall(r" $", "abc123=+^$ \na( &% ", re.M)
print(result)

\b:匹配单词边界。

import re
result = re.findall(r"\b", "abcdef")
print(result)

\B:匹配非单词边界。

import re
result = re.findall(r"\B", "abcdef")
print(result)

7.分组和选择:

(abc):匹配并捕获子表达式 abc

import reresult = re.search(r"(.*)4(.*)c(.*)f", "12345abcdef")
print(result, result.group(), result.group(1), result.group(2), result.group(3))result = re.findall(r"(.*)4(.*)c(.*)f", "12345abcdef")
print(result[0][0], result[0][1], result[0][2])

a|b:匹配 a 或 b

import re
result = re.findall(r"[1-5]|[a-f]", "12345abcdef")
print(result)


http://www.mrgr.cn/news/6147.html

相关文章:

  • OpenAI 推出名为 GPT-4o mini 的迷你 AI 模型,该款模型设计有哪些亮点?
  • 鸿蒙Harmony开发知识:Arkts函数
  • 38-java代码可以实现一次编写 到处运行
  • c++题目_背包问题(可任意分割) 贪心算法
  • 想学网络,为什么要先学数通?
  • 深入理解 Go 语言的 GMP 调度模型
  • js 和 ts 的类型总览
  • 数据结构---单链表实现
  • vue Formily动态表单解决方案
  • 揭秘电子版招生简章的制作方法!
  • 昇腾 - AscendCL C++应用开发 图像文件的解码时硬件对图像的宽度和高度的处理方式
  • 【GitLab】使用 Docker 安装 3:gitlab-ce:17.3.0-ce.0 配置
  • 股票买卖的思路与代码
  • Vue `<script setup>` 属性的深入解析
  • docker私有仓库创建与推送
  • 马思克聊天机器人Grok-2图像生成审查过滤机制引发巨大的争议
  • VR(虚拟现实)和AR(增强现实)
  • Nacos 修复 Tomcat 信息泄露漏洞CVE-2024-21733
  • 响应式 Web 设计:纯 HTML 和 CSS 的实现技巧
  • dm 到 dm 的 HS 同步部署