PatternModifiers-规则表达式的修饰符(转载)发现PHP里有些正则

Pattern Modifiers - 规则表达式的修饰符
下面是当前规则表达式里可用的修饰. 括号内的名字是那些修饰符的内部 PCRE 名字.
i (PCRE_CASELESS)
如果设置了这个修饰符, 则表达式不区分大小写.
m (PCRE_MULTILINE)
默认的, PCRE 认为目标字符串值是单行字符串 (即使他确实包含多行). 行开始标记 (^) 只匹配字符串的开始部分, 而行结束标记 ($) 只匹配字符串的尾部,或者一个结束行(除非指定 E 修饰符). 这个和 Perl 里面一样.
如果设定了这个修饰符, 行开始和行结束结构分别匹配在目标字符串任何新行的当前位置后面的或者以前的, 和每一个开始和结束一样. 这个等于 Perl 里面的 /m 修饰符. 如果目标字符串没有 "n" 字符, 或者模式里没有 ^ 或 $ ,这个修饰符不起作用.
s (PCRE_DOTALL)
如果设置这个修饰符, 模式里的一个"点"将匹配所有字符, 包括换行. 没有他, 换行将被排除在外. 这个修饰符等同于 Perl 里面的 /s 修饰符. 一个相反的类型,例如 [^a] 将总是匹配换行字符,而不管这个修饰符的限制.
x (PCRE_EXTENDED)
如果设置这个修饰符, 模式里面的空格数句将会被全部忽略,除非用转义符或者一个字符的内部类型,还有所有字符类型外的未转义的 # 号之间的也被忽略. 这个等同于 Perl 里面的 /x 修饰符, 这样可以复杂的模式里面加入注释. 注意,只适用于数据字符. 空格字符将不会在指定的模式字符指定顺序中出现。
e
如果设置这个修饰符, preg_replace() 将在替换值里进行正常的涉及到 的替换, 等

时间: 2024-11-05 19:26:51

PatternModifiers-规则表达式的修饰符(转载)发现PHP里有些正则的相关文章

浅谈PHP正则表达式中修饰符/i, /is, /s, /isU_php技巧

在学习PHP正则表达式修饰符之前先来理解下贪婪模式,前面在元字符中提到过"?"还有一个重要的作用,即"贪婪模式",什么是"贪婪模式"呢? PHP正则表达式贪婪模式: 比如我们要匹配以字母"a"开头字母"b"结尾的字符串,但是需要匹配的字符串在"a"后面含有很多个"b",比如"a bbbbbbbbbbbbbbbbb",那正则表达式是会匹配第一个&qu

PHP中正则表达式模式修饰符详解

PHP模式修饰符又叫模式修正符,是在正则表达式的定界符之外使用.主要用来调整正则表达式的解释,提扩展了正则表达式在匹配.替换等操作的某些功能,增强了正则的能力.但是有很多地方的解释都是错误的,也容易误导别人,所以今天我把这个文档整理出来,供大家参考. 模式修正符号 功能描述 i 在和正则匹配是不区分大小写 m 将字符串视为多行.默认的正则开始"^"和结束"$"将目标字条串作为一单一的一"行"字符(甚至其中包括换行符也是如此).如果在修饰符中加上&

解读C#中的规则表达式

多少年来,许多的编程语言和工具都包含对规则表达式的支持,.NET基础类库中包含有一个名字空间和一系列可以充分发挥规则表达式威力的类,而且它们也都与未来的Perl 5中的规则表达式兼容. 此外,regexp类还能够完成一些其他的功能,例如从右至左的结合模式和表达式的编辑等. 在这篇文章中,我将简要地介绍System.Text.RegularExpression中的类和方法.一些字符串匹配和替换的例子以及组结构的详细情况,最后,还会介绍一些你可能会用到的常见的表达式. 应该掌握的基础知识 规则表达式

Java基础-10总结形式参数,包,修饰符,内部类

你需要的是什么,直接评论留言. 获取更多资源加微信公众号"Java帮帮" (是公众号,不是微信好友哦) 还有"Java帮帮"今日头条号,技术文章与新闻,每日更新,欢迎阅读 学习交流请加Java帮帮交流QQ群553841695 分享是一种美德,分享更快乐! 类,抽象类,接口的综合小练习 /* 教练和运动员案例(学生分析然后讲解) 乒乓球运动员和篮球运动员. 乒乓球教练和篮球教练. 为了出国交流,跟乒乓球相关的人员都需要学习英语. 请用所学知识: 分析,这个案例中有哪些

块(Block),元素(Element),修饰符(Modifier)

文章简介:BEM代表块(Block),元素(Element),修饰符(Modifier).这些术语的含意将在本文进一步阐述. 什么是BEM? BEM代表块(Block),元素(Element),修饰符(Modifier).这些术语的含意将在本文进一步阐述. 编程方法论中一个最常见的例子就是面向对象编程(OOP).这一编程范例出现在许多语言中.在某种程度上,BEM和OOP是相似的.它是一种用代码和一系列模式来描述现实情况的方法,它只考虑程序实体而无所谓使用什么编程语言. 我们使用BEM的原则创建了

访问修饰符(二)

访问 1.Public Public 关键字将公共访问权限授予一个或多个被声明的编程元素.对公共元素的可访问性没有限制.Public 关键字用于下面的上下文中:Class 语句 Const 语句 Declare 语句 Delegate 语句 Dim 语句 Enum 语句 Event 语句 Function 语句 Interface 语句 Module 语句 Property 语句 Structure 语句 Sub 语句 2.Private Private 关键字将私有访问权限授予一个或多个被声明

Java语言入门教程(六):Java语言中的static修饰符

在Java类中,我们常常会看到static关键字,往往被称为静态的.Static修 饰符可以用来修饰数据成员,方法成员,但是不能修饰类(此处指外部类),不 能修饰构造方法.如: package com.csst.vo; public class User { private String name; private static int count; public String getName() { return name; } public void setName(String name)

Effective C#原则29:仅在对基类进行强制更新时才使用new修饰符

你可以用new修饰符来重新定义一个从基类中继承来的非虚成员.你可以这样 做,但并不意味着需要这样做.重新定义非虚方法会导致方法含意的混乱.如果 两个相关的类是继承关系,那么很多开发人员可能会立即假设两段代码块是做完 全相同的事情,而且他们也会这么认为: object c = MakeObject( ); // Call through MyClass reference: MyClass cl = c as MyClass; cl.MagicMethod( ); // Call through

beforefieldinit修饰符是干嘛用的

假设我们有一个类A带有beforefieldinit修饰符(beforefieldinit修饰符是编译器在编译完之后,自动加上的,只能通过反编译工具看).总的来说,加上beforefieldinit修饰符就意味着"类A会在变量可能被引用的前一刻,提前完成初始化.从理论上,加上beforefieldinit修饰符的类A可能延迟初始化,如果你调用的静态方法没有引用任何静态类变量,JIT就不需要初始化这个类A.      实际上,类A也可能早早地初始化,即使我们在代码中没有引用到类A中的变量.但这也没