正则表达式中(?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']
相关推荐
李白客1 分钟前
高可用数据库:RTO、RPO与架构选型,一篇讲透
数据库·架构
justjinji4 分钟前
Redis如何利用LFU算法优化缓存命中率
jvm·数据库·python
瀚高PG实验室6 分钟前
PostgreSQL pg_dump对象名称中有换行符时可导致psql客户端及恢复目标服务器执行任意恶意代码HGVE-2025-E008
服务器·数据库·postgresql·瀚高数据库
justjinji7 分钟前
Redis怎样应对大规模集群的重启风暴_分批次重启节点并等待集群状态恢复绿灯后再继续操作
jvm·数据库·python
qq_424098568 分钟前
mysql如何查看所有数据库用户_mysql用户查询管理命令
jvm·数据库·python
z4424753269 分钟前
Go语言如何做API限流_Go语言令牌桶限流教程【深入】
jvm·数据库·python
霍小毛10 分钟前
数字孪生+AI重构风电运营:从“靠天吃饭“到“精准掌控“的能源革命
数据库·手机·框架·编程·测试·delete
geNE GENT10 分钟前
SQL 中UPDATE 和 DELETE 语句的深入理解与应用
数据库·sql
djjdjdjdjjdj11 分钟前
Go语言如何做延迟队列_Go语言延迟消息队列教程【核心】
jvm·数据库·python
weixin_4585801211 分钟前
如何在 Laravel 中筛选并格式化匹配预定义列表的产品数据
jvm·数据库·python