python:正则表达式

范例一:

复制代码
import re

content = 'Hello 1234567 World_This is a Regex Demo'
result=re.match('^Hello\s(\d+)\sWorld',content)
print(result)
print(result.group())
print(result.group(1))
print(result.span())

关键知识点:

  1. re.match(pattern, string) :从字符串开头 开始匹配正则表达式,若开头不匹配则返回 None,匹配成功则返回 Match 对象。
  2. 正则表达式符号 :
    • ^:匹配字符串开头(re.match 本身已从开头匹配,此处可省略,但写出来更明确)。
    • \s:匹配任意空白字符(空格、制表符等)。
    • \d+:匹配 1 个或多个数字。
    • ():分组匹配,将括号内的内容作为一个分组,可通过 group(n) 提取。
  3. Match 对象的方法 :
    • group():返回整个匹配的字符串(等同于 group(0))。
    • group(1):返回第一个分组匹配的内容(若有多个分组,可依次用 group(2)、group(3) 提取)。
    • span():返回匹配的起始和结束索引(元组形式)。

范例二:

复制代码
import re

content = 'Hello 1234567 World_This is a Regex Demo'
result=re.match('^Hello.*Demo$',content)
print(result)
print(result.group())
print(result.span())

关键知识点:

1. 正则表达式模式

^Hello.*Demo$ 的含义:

  • ^:匹配字符串的开头
  • Hello:匹配字面量字符串 "Hello"
  • .*:* 表示匹配前面的字符(. 代表任意字符,除换行符)0 次或多次
  • Demo$:$ 匹配字符串的结尾,这里匹配字面量 "Demo"

范例三:

复制代码
import re

s = "Python is good, Python is powerful"
# 正则:匹配以Python开头,以is结尾的内容(非贪婪匹配)
pattern_lazy = r"Python.*?is"
result_lazy = re.search(pattern_lazy, s)
print("非贪婪匹配结果:", result_lazy.group())

print("非贪婪匹配结果:", result_lazy)
复制代码
import re

s = "Python insert is good, Python is powerful"
# 正则:匹配以Python开头,以is结尾的内容(非贪婪匹配)
pattern_lazy = r"Python.*?is"
result_lazy = re.search(pattern_lazy, s)
print("非贪婪匹配结果:", result_lazy.group())

print("非贪婪匹配结果:", result_lazy)

在python 和is 之间增加了insert,结果如下:

复制代码
import re

s = "Python insert is good, Python is powerful"
# 正则:匹配以Python开头,以is结尾的内容(非贪婪匹配)
pattern_lazy = r"Python.*is"
result_lazy = re.search(pattern_lazy, s)
print("非贪婪匹配结果:", result_lazy.group())

print("非贪婪匹配结果:", result_lazy)

将.*?更改为.*之后,运行结果如下:

.*正则表达式将所有可能的符合正则要求的范围全部包含了进来 !

相关推荐
子兮曰3 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰3 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
默_笙3 天前
🍙 给每个请求过安检:FastAPI 是怎么把校验写进类型注解的
python
前端小万3 天前
写公众号赚了 3000 块后,我做了一款叫 "一键成稿" 的软件
前端·微信小程序
爱勇宝3 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
qq_426003963 天前
启动playwright录制codegen生成自动化测试脚本
python·自动化
虎头金猫3 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
三十而立洋3 天前
Cookie 详解:从产生到安全,一次讲透
前端·javascript
长沙三为智能科技3 天前
家政小程序开发从0到上线:五阶段交付流程与验收清单
python
伞伞悦读3 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python