正则表达式中的模式修正符S和M 妙用!

简介: 教你如何正确使用正则表达式中的模式修正符S和M!

🚀 个人主页 极客小俊
✍🏻 作者简介:web开发者、设计师、技术分享博主
🐋 希望大家多多支持一下, 我们一起进步!😄
🏅 如果文章对你有帮助的话,欢迎评论 💬点赞👍🏻 收藏 📂加关注

logo.png

模式修正符 s和m

前面我也写到过模式修正符 在这里给大家再一次的补充以下两个比较特殊的修正符s和m

m 将字符串视为多行

  1. 多行的意思就是把有\n的字符串看做是另起一行,再来匹配正则
  2. 简单的说就是把一个双引号的字符串,把它以\n为基础分割成的独立行
  3. 匹配每一行\n换行符之前的内容
    小结:
    m修正符的意思就是用来修正^ 和 $ 的作用,因为本身^ 和 $是匹配整个一大段字符串, 而m就是把一大段字符串拆分成每一行来进行匹配, 匹配每一行换行符之前的内容
    注意: 字符串如果是单引号是对\n无效的,字符串必须是双引号才能解析里面的\n
    代码如下
    $string="h11111\nh22222\nh33333";
    {
         
         mathJaxContainer[1]}/im';
    preg_match_all({
         
         mathJaxContainer[2]}string,$result);
    show($result);
    

s 将字符串视为单行,换行符会作为普通字符
s如果设置了这个修饰符,模式中的(点号)元字符匹配所有字符,包含换行符。如果没有这个修饰符,点号不匹配换行符。这个修饰符等同于 perl 中的/s修饰符。

一个取反字符类比如 [^a] 总是匹配换行符,而不依赖于这个修饰符的设置

代码案例

//对比1
$string="an this is eve
an tzone good
an good";

$pattern='/^(an)/m';


preg_match_all({
   
   mathJaxContainer[3]}string,$arr);
show($arr);


//对比2
$string="an this is eve
an tzone good
an good";

$pattern='/^(an).+/s';


preg_match_all({
   
   mathJaxContainer[4]}string,$arr2);
show($arr2);


//对比3
$string="an this is eve
an tzone good
an good";

$pattern='/^(an).+/m';


preg_match_all({
   
   mathJaxContainer[5]}string,$arr3);
show($arr3);

结果打印:
1.png

通过以上案例代码的对比可以不难发现 m和s这两个模式修正符的区分!

相关文章
|
4月前
|
SQL 数据处理 数据库
SQL正则表达式应用:文本数据处理的强大工具——深入探讨数据验证、模式搜索、字符替换等核心功能及性能优化和兼容性问题
【8月更文挑战第31天】SQL正则表达式是数据库管理和应用开发中处理文本数据的强大工具,支持数据验证、模式搜索和字符替换等功能。本文通过问答形式介绍了其基本概念、使用方法及注意事项,帮助读者掌握这一重要技能,提升文本数据处理效率。尽管功能强大,但在不同数据库系统中可能存在兼容性问题,需谨慎使用以优化性能。
61 0
|
PHP 开发者
你见过这些正则表达式中奇奇怪怪的匹配模式吗 _ 贪婪匹配、懒惰匹配 、禁止贪婪匹配!
一篇文章让你清楚的了解正则表达式中奇奇怪怪的匹配模式-- 贪婪匹配、懒惰匹配 、禁止贪婪匹配!
86 1
你见过这些正则表达式中奇奇怪怪的匹配模式吗 _ 贪婪匹配、懒惰匹配 、禁止贪婪匹配!
|
7月前
|
JavaScript 前端开发 索引
JavaScript中的正则表达式:使用与模式匹配
【4月更文挑战第22天】本文介绍了JavaScript中的正则表达式及其模式匹配,包括字面量和构造函数定义方式,以及`test()`、`match()`、`search()`和`replace()`等匹配方法。正则表达式由元字符(如`.`、`*`、`[]`)和标志(如`g`、`i`)组成,用于定义搜索模式。文中还分享了正则使用的技巧,如模式分解、非捕获分组和注释。掌握正则表达式能提升文本处理的效率和代码质量。
|
开发者
正则表达式中子模式如何取别名 注释又怎么写
正则表达式的注释居然有如此玄机!
48 0
正则表达式中子模式如何取别名 注释又怎么写
|
7月前
|
数据可视化 容器
解锁正则表达式的秘密:regex-vis工具带你看见模式匹配的魔法!
解锁正则表达式的秘密:regex-vis工具带你看见模式匹配的魔法!
148 2
|
7月前
|
存储 Shell 程序员
Python 自动化指南(繁琐工作自动化)第二版:七、使用正则表达式的模式匹配
Python 自动化指南(繁琐工作自动化)第二版:七、使用正则表达式的模式匹配
102 0
|
PHP 开发者
正则表达式中的【模式修正符】 完美增强字符串处理的能力!
如果你还没有搞懂模式修饰符是什么?那么你必须要看一下这篇文章!!
62 0
正则表达式中的【模式修正符】 完美增强字符串处理的能力!
|
Python
【从零学习python 】68. Python正则表达式中的贪婪和非贪婪模式
【从零学习python 】68. Python正则表达式中的贪婪和非贪婪模式
84 2
|
6月前
|
数据库 Python
Python网络数据抓取(8):正则表达式
Python网络数据抓取(8):正则表达式
57 2
|
6月前
|
自然语言处理 JavaScript 前端开发
Python高级语法与正则表达式(二)
正则表达式描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。