正则表达式中(?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']
相关推荐
山沐与山17 小时前
【MQ】MQ消息队列幂等性设计与踩坑实战
java·开发语言·数据库·rocketmq
宠..17 小时前
奇怪的语法错误
运维·服务器·数据库·qt·microsoft
爱可生开源社区17 小时前
SCALE | 2025 年 12 月《大模型 SQL 能力排行榜》发布
数据库·sql·aigc
dishugj17 小时前
【Oracle】Oracle数据库迁移-数据文件(非系统数据文件)目录迁移
数据库·oracle
Leon-Ning Liu17 小时前
SYSAUX表空间使用率暴增处理方式
数据库·oracle
数据知道17 小时前
MongoDB Shell 工具全面对比:mongosh 和 mongo
数据库·mongodb
天码-行空17 小时前
【大数据环境安装指南】HBase单机环境搭建教程
大数据·linux·运维·数据库·hbase
Chloeis Syntax17 小时前
MySQL初阶学习日记(8)--- JDBC
java·数据库·笔记·学习·mysql·jdbc
无级程序员18 小时前
datasophon升级hbase到2.5
大数据·数据库·hbase
Vic1010118 小时前
SQL性能优化:子查询优化
java·服务器·数据库