PHP正则表达式的修饰符

原创
2016-06-13 09:39:18 921浏览

在PHP中使用正则表达式时,会与其它语言有些差别,这个差别的其中之一是PHP有对正则的修饰符(限定符)的存在。

我们在PHP正则表达式的学习中会碰到修饰符,那么关于PHP正则表达式修饰符的理解以及使用我们需要注意什么呢?那么我们来具体的看看它的概念以及相关内容。在学习PHP正则表达式修饰符之前先来理解下贪婪模式,前面在元字符中提到过“?”还有一个重要的作用,即“贪婪模式”,什么是“贪婪模式”呢?

PHP正则表达式贪婪模式:

比如我们要匹配以字母“a”开头字母“b”结尾的字符串,但是需要匹配的字符串在“a”后面含有很多个“b”,比如“a bbbbbbbbbbbbbbbbb”,那正则表达式是会匹配第一个“b”还是最后一个“b”呢?如果你使用了贪婪模式,那么会匹配到最后一个“b”,反之只是匹配到第一个“b”。

PHP正则表达式贪婪模式使用实例:

  1. /a.+?b/
  2. /a.+b/U

对比不使用贪婪模式的实例如下:

  1. /a.+b/

上面使用了一个修饰符U,详见关于修饰符的介绍。

PHP正则表达式修饰符的理解:

在PHP正则表达式里面的修饰符可以改变正则的很多特性,使得正则表达式更加适合你的需要(注意:修饰符对于大小写是敏感的,这意味着“e”并不等于“E”)。

PHP正则表达式修饰符的种类及介绍:

  • i :如果在修饰符中加上“i”,则正则将会取消大小写敏感性,即“a”和“A” 是一样的。
  • m:默认的正则开始“^”和结束“$”只是对于正则字符串如果在修饰符中加上“m”,那么开始和结束将会指字符串的每一行:每一行的开头就是“^”,结尾就是“$”。
  • s:如果在修饰符中加入“s”,那么默认的“.”代表除了换行符以外的任何字符将会变成任意字符,也就是包括换行符!
  • x:如果加上该修饰符,表达式中的空白字符将会被忽略,除非它已经被转义。
  • e:本修饰符仅仅对于replacement有用,代表在replacement中作为PHP代码。
  • A:如果使用这个修饰符,那么表达式必须是匹配的字符串中的开头部分。比如说“/a/A”匹配“abcd”。
  • E:与“m”相反,如果使用这个修饰符,那么“$”将匹配绝对字符串的结尾,而不是换行符前面,默认就打开了这个模式。
  • U:和问号的作用差不多,用于设置“贪婪模式”。

PHP正则表达式修饰符的相关内容就向你介绍到这里,希望对你了解和掌握PHP正则表达式修饰符有所帮助。

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。