正则表达式中(?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']
相关推荐
最贪吃的虎7 小时前
Git: rebase vs merge
java·运维·git·后端·mysql
QQ14220784497 小时前
没有这个数据库账户,难道受到了sql注入式攻击?
数据库·sql
残 风7 小时前
pg兼容mysql框架之语法解析层(openHalo开源项目解析)
数据库·mysql·开源
勇往直前plus7 小时前
MyBatis/MyBatis-Plus类型转换器深度解析:从基础原理到自定义实践
数据库·oracle·mybatis
cyhysr7 小时前
sql将表字段不相关的内容关联到一起
数据库·sql
九皇叔叔8 小时前
MySQL 数据库 MVCC 机制
数据库·mysql
此生只爱蛋8 小时前
【Redis】Set 集合
数据库·redis·缓存
bjzhang758 小时前
C#操作SQLite数据库
数据库·sqlite·c#
hans汉斯8 小时前
嵌入式操作系统技术发展趋势
大数据·数据库·物联网·rust·云计算·嵌入式实时数据库·汉斯出版社
Coder_Boy_9 小时前
Spring 核心思想与企业级最佳特性(实践级)事务相关
java·数据库·spring