正则表达式中(?s)与(?m)的区别解析
更新时间:2023年11月10日 15:54:18 作者:Takoony
(?m) 和 (?s) 是正则表达式中的两个模式标志,它们具有不同的作用,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
正则表达式中(?s)与(?m)的区别
理论:
(?m) 和 (?s) 是正则表达式中的两个模式标志,它们具有不同的作用:
1.(?m) 多行模式标志(也称为 “multiline” 模式):
- 默认情况下,正则表达式将整个输入字符串视为单行
- 多行文本中使用该标志时,正则表达式会匹配每一行
2.(?s) 单行模式标志(也称为 “dotall” 模式):
- 默认情况下,. 元字符匹配除了换行符之外的任意字符。
- 当使用 单行模式标志时,. 元字符将匹配包括换行符在内的任意字符。
实践:
正则表达式re.S与re.M的区别
一、python中的re模块
二、re.S与re.M的区别
1. re.S表示单行匹配模式
2. re.M表示多行匹配模式
三、案例演示
1. re.M多行匹配
2. re.S单行匹配
【.】可以匹配除换行符之外的所有字符,当设置成re.S之后,可以简单理解为:【.】可以匹配换行符,所以【.】可以匹配所有字符
3. \w+不能匹配换行符
四、复习一下正则表达式
1. 单字符:
. : 除换行之外所有字符
[]: [aoe][a-w] 匹配集合中任意一个字符
\d: 数字 [0-9]
\D: 非数字
\w: 数字、子母、下划线、中文
\W: 非\w
\s: 所有的空白字符
\S: 非空白字符
2. 数量修饰:
*:任意次数 >=0
+: 至少1次 >=1
?: 可有可无 0次或者1次
{m}: 固定m次
{m,}: 至少m次
{m,n}: m-n次
3. 边界:
^: 以...开头
$: 以...结尾
4. 分组:
(): 视为一个整体
(ab){4}:视为一个整体,匹配次数
(): 子模式\组模式 \1 \2
5. 取消贪婪模式
.*?
.+?
6. 查找
match: 只从开头开始找
search: 从任意位置开始找
findall: 找所有
1. 分组子模式
到此这篇关于正则表达式中(?s)与(?m)的区别的文章就介绍到这了,更多相关正则表达式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
最新评论