正则表达式模式修正符

摘要:
例如,“/php/Uis”是“U”、“i”和“s”的组合。模式修饰符非常有助于编写简洁和简单的表达式。下表中列出了一些常用的模式修饰符及其功能描述,如下表所示。使用图案修改器时,将忽略其中的空格和换行符。如果使用其他非模式校正字符,将导致错误。

模式修正符号在正则表达式定界符之外使用(最后一个斜线“/”之后),例如“php/i”。其中“/php/”是一个正则表达式的模式,而“i”就是修正此模式所使用的修正符号,用来匹配时不区分大小写。模式修正符可以调整正则表达式的解释,扩展了正则表达式在匹配、替换等操作时的某些功能,而且模式修正符号也可以组合使用,更增强了正则表达式的处理能力。例如“/php/Uis”则是使用“U”、“i”和“s”三个模式修正符组合在一起使用。模式修正符对编写简洁而简小的表达式大有帮助,在下面的表格中,列出了一些常用的模式修正符及其功能说明,如下表所示。

1
  下面是几个简单的示例,用以说明表中模式修正符中的使用。在使用模式修正符时,其中的空格和换行被忽略,如果使用其他非模式修正字符会导致错误。如下所示:
  模式“/Web Server/ix”可以用来匹配字符串“webServer”,忽略大小写和空白。
  模式“/a.*e/”去匹配字符串“abcdefgabcdefgabcdefg”,由于模式中的“.*”按贪婪匹配,会从这个字符串中匹配出“abcdefgabcdefgabcde”。从第一个“a”字母开始到最后一个“e”字母结束,都属于“.*”的内容,所以不是“abcde”。如果想取消这种贪婪匹配,想从第一个字母“a”只匹配到第一个字母“e”就结束,匹配出字符串“abcde”,可以使用模式修正符号“U”或在模式中使用“.*”后面跟上“?”,例如使用模式“/a.*e/U”或“/a.*?e/”。相反,如果两个一起使用又启用了贪婪匹配,例如模式“/a.*?e/U”则匹配字符串“abcdefgabcdefgabcdefg”中的“abcdefgabcdefgabcde”,而不是“abcde”。建议在模式中使用“.*”后面跟上“?”代替模式修正符号“U”,因为在其他一些编程语言中,如果也是采用Perl兼容的正则函数,可能没有模式修正符号“U”,例如JavaScript中就不存在这个模式修正符号。
  模式“/^is/m”可以匹配字符串“this is a tes”中的is,因为使用模式修正符“m”将字符串视为了多行,第二行的开头出现了“is”则匹配成功。默认的正则开始“^”和结束“$”将目标字符串作为单一的一“行”(甚至其中包含有换行符也是如此)。
 

>> 本文固定链接: http://php.ncong.com/php_course/php_zend/xiuzhengfu.html

>> 转载请注明:  2014年08月01日 于 恩聪PHP学习教程 发表

免责声明:文章转载自《正则表达式模式修正符》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇tp5 使用SMproxy连接池来连接mysql数据库常用ES6语法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

LabVIEW部分视觉函数中文解说

IMAQ Learn Pattern 2 VI在匹配阶段创建您要搜索的图案匹配的模板图像的描述,此描述的数据被附加到输入模板图像中。在匹配阶段,从模板图像中提取模板描述符并且用于从检查图像中搜索模板。 Image:是一个您要搜索模板图像的参考检查图像。 Learn Pattern Setup Data(学习模式设置数据):是一个字符串,包含从本控件或从高级...

Go语言正则表达式提取网页文本

为了方便提取,我们会把正则表达式中要提取的数据使用命名方式来书写正则表达式。这个技术在Go语言中如何实现,可以看下面这篇博客: Using the Go Regexp Packagehttp://blog.kamilkisiel.net/blog/2012/07/05/using-the-go-regexp-package/ 简单期间,这里复制其中几个例子...

使用正则表达式限制swing (JTextField等) 的输入

之前使用Qt编写Gui程序的时候,可以直接使用正则表达式限制所有输入框,非常方便。 这段时间要做一份课程设计,使用java编写,ui要限制输入,比如只能输入x位数字,输入身份证等。 百度了许多资料,发现了一个JFormattedTextField 的类可以规范输入。 刚开始试用觉得还不错,后来发现一个严重的问题:如果光标不是从最左边插入的话,那么左边的位置...

在线测试JavaScript代码性能

(寻龙分金看缠山,一重缠是一重关,关门如有八重险,不出阴阳出八卦) JSLint JSLint是基于Web的验证JavaScript错误代码的工具。它拥有的功能及特定的设置来使用您的需求,自定义你的验证算法。 JsUnit JsUnit是一款在客户端(在浏览时)的单元测试JavaScript框架。对JavaScript而言,JUnit就像是它的一个端口。当...

ECMAScript正则表达式6个最新特性

译者按: 还没学好ES6?ECMAScript 2018已经到来啦! 原文:ECMAScript regular expressions are getting better! 作者: Mathias Bynens: Google V8引擎开发者 译者:Fundebug 为了保证可读性,本文采用意译而非直译。另外,本文版权归原作者所有,翻译...

Nginx Rewrite域名及资源重定向

一.正则匹配     1.匹配规则         ^$  标识符匹配后面跟-一个字符串。匹配字符串后将停止对后续的正则表达式进行匹配,如location ^~/images/,在匹配了/images/这个字符串后就停止对后续的正则匹配         =   精准匹配,如location=/,只会匹配url为/的请求         ~   区分大小写的...