正则表达式中(?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']
相关推荐
chicheese15 分钟前
MySQL优化实践:选错JOIN 驱动表,性能相差几十倍
数据库·mysql
無限進步D18 分钟前
MySQL 单行函数
数据库·mysql
锋行天下21 分钟前
一句mysql复杂查询搞崩一个壮汉
后端·mysql·go
AI人工智能+电脑小能手1 小时前
【大白话说Java面试题 第77题】【Mysql篇】第7题:回表查询与全表扫描的区别?
java·开发语言·数据库·mysql·面试
水木流年追梦1 小时前
大模型入门-大模型分布式训练2
开发语言·分布式·python·算法·正则表达式·prompt
项目工具测评实验室1 小时前
复杂项目管理工具选型:飞书项目、PingCode、ONES 深度对比与真实场景分析
数据库·飞书·pingcode
Drache_long2 小时前
CentOS7安装Oracle数据库
数据库·oracle
auspicious航2 小时前
PostgreSQL逻辑复制全解析:从原理到跨区域实战
数据库·postgresql
無限進步D2 小时前
MySQL 聚合函数
数据库·mysql
许彰午3 小时前
开发转兼职DBA(四):又起不来了——MVCC、undo与回滚段
数据库·dba