正则表达式中(?s)与(?m)的区别

理论:

(?m) 和 (?s) 是正则表达式中的两个模式标志,它们具有不同的作用:

  1. (?m) 多行模式标志(也称为 "multiline" 模式):
  • 默认情况下,正则表达式将整个输入字符串视为单行
  • 多行文本中使用该标志时,正则表达式会匹配每一行
  1. (?s) 单行模式标志(也称为 "dotall" 模式):
  • 默认情况下,. 元字符匹配除了换行符之外的任意字符。
  • 当使用 单行模式标志时,. 元字符将匹配包括换行符在内的任意字符。

实践:

复制代码
import re

pattern1 = r'^.*'  
pattern2 = r'(?m)^.*'  
pattern3 = r'(?s)^.*'

matches1 = re.findall(pattern1, "Hello\nWorld")
matches2 = re.findall(pattern2, "Hello\nWorld")
matches3 = re.findall(pattern3, "Hello\nWorld")

print(matches1)  # 输出:['Hello']
print(matches2)  # 输出:['Hello', 'World']
print(matches3)  # 输出:['Hello\nWorld']
相关推荐
隔窗听雨眠12 小时前
MySQL索引机制深度解析:从B+树原理到高并发查询优化的完整指南
数据库·b树·mysql
数智化管理手记12 小时前
数据质量无法保障?自动化数据质量规则校验如何搭建方案?
大数据·数据库·自动化
我的xiaodoujiao12 小时前
使用PyMySQL模块技术操作MySQL数据库
数据库·python·测试工具·mysql
zmzmzmalo16 小时前
Linux ELF文件加载与内存管理揭秘
linux·网络·数据库
Super 含1 天前
Android 启动优化(五):线程、GC 与 IO 为什么会拖慢启动?
java·服务器·数据库
ltl1 天前
向量检索引擎选型:决策树、RAG 回链与开放问题
数据库
坚持学习前端日记1 天前
Python SQLAlchemy ORM 从0到1精通实战手册(基础到复杂高阶)
数据库·python·oracle
灯澜忆梦1 天前
【MySQL17】进阶篇 | InnoDB引擎
数据库·mysql
anxiao_m1 天前
2026制造业云桌面选型攻略,不同生产场景适配方案汇总
大数据·网络·数据库
许彰午1 天前
# 数据库配拦截器,不用改BPMN
数据库