正则表达式中(?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']
相关推荐
计算机毕设VX:Fegn08958 分钟前
计算机毕业设计|基于springboot + vue个人博客系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·课程设计
十五年专注C++开发26 分钟前
浅谈Qt中的QSql模块整体设计
开发语言·数据库·c++·qt
TDengine (老段)37 分钟前
TDengine 生态系统连接指南
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
k***921641 分钟前
C++:继承
java·数据库·c++
一只旭宝1 小时前
Linux专题十二:mysql数据库以及redis数据库
linux·数据库·mysql
萧曵 丶1 小时前
MySQL B+树详解
数据库·b树·mysql
鱼跃鹰飞1 小时前
面试题:Spring事务失效的八大场景
数据库·mysql·spring
ss2732 小时前
类的线程安全:多线程编程-银行转账系统:如果两个线程同时修改同一个账户余额,没有适当的保护机制,会发生什么?
java·开发语言·数据库
郑泰科技2 小时前
windows下启动hbase的步骤
数据库·windows·hbase
子一!!2 小时前
MySQL数据库基础操作
数据库·mysql·oracle