Home  >  Article  >  Backend Development  >  PHP regular modifier usage example analysis

PHP regular modifier usage example analysis

墨辰丷
墨辰丷Original
2018-05-29 09:42:081227browse

This article mainly introduces the usage of PHP regular modifiers, and analyzes the functions, usage methods and related precautions of PHP regular modifiers in detail in the form of examples. Friends in need can refer to the following

Examples of this article Learned the usage of php regular modifiers. Share it with everyone for your reference, the details are as follows:

<?php
   //标记在整个模式之外;
   // 例://$mode="/\bis\b/U",其中U在外面;
  //修正符:i 不区分大小写的匹配;
     //如:"/abc/i"可以与abc或aBC或ABc等匹配;
  //修正符:m 将字符串视为多行,不管是那行都能匹配;
  //  例://模式为:$mode="/abc/m";
     //要匹配的字符串为:$str="bcefg5e\nabcdfe"
     //注意其中\n,换行了;abc换到了下一行;
     //$str和$mode仍可以匹配,修正符m使得多行也可匹配;
  //修正符:s 将字符串视为单行,换行符作为普通字符;
   // 例://模式为:$mode="/pr.y/";
      //要匹配字符串为:$str="pr\ny";
      //两者不可匹配; . 是除了换行以外的字符可匹配;
      //修改下模式为:$mode="/pr.y/s";
        //其中修正符s将\n视为普通字符,即不是换行;
      //最后两者可以匹配;
  //修正符:x 将模式中的空白忽略;
  //修正符:A 强制从目标字符串开头匹配;
   // 例://$mode="/abc/A";
      //可以与$str="abcsdfi"匹配,
      //不可以与$str2="sdsdabc"匹配;
      //因为$str2不是以abc开头;
  //修正符:D 如果使用$限制结尾字符,则不允许结尾有换行;
  //  例://模式为:$mode="/abc$/";
      //可以与最后有换行的$str="adshabc\n"匹配;
      //元子符$会忽略最后的换行\n;
      //如果模式为:$mode="/abc/D",
      //则不能与$str="adshabc\n"匹配,
      //修正符D限制其不可有换行;必需以abc结尾;
  //修正符:U 只匹配最近的一个字符串;不重复匹配;
  //  例:
  //   如模式为:
      $mode="/a.*c/";
      $str="abcabbbcabbbbbc" ;
      preg_match($mode,$str,$content);
      echo $content[0]; //输出:abcabbbcabbbbbc;
      //如果$mode="/a.*c/";变成$mode="/a.*c/U";
      // 则只匹配最近一个字符串,输出:abc;
//修正符:e 配合函数preg_replace()使用,
//      可以把匹配来的字符串当作正则表达式执行;
?>

Modifier:

POSIXCompatible regular expressions have no modifiers.

Perl compatible modifiers that may be used in regular expressions (spaces and newlines in the modifiers are ignored, other characters will cause errors):

i (PCRE_CASELESS):
Ignore case when matching.

m (PCRE_MULTILINE):
When this modifier is set, the start of line (^) and the end of line ($) match the beginning and end of the entire string. Also matches after and before the newline character (\n).

s (PCRE_DOTALL):
If this modifier is set, the dot metacharacter (.) in the pattern matches all characters, including newlines. Without this setting, newline characters are not included.

x (PCRE_EXTENDED):
If this modifier is set, whitespace characters in the pattern are completely ignored except those that are escaped or within a character class.

e :
If this modifier is set, preg_replace() performs the normal replacement of the backreference in the replacement string, evaluates it as PHP code, and uses The result is used to replace the searched string. Only preg_replace() uses this modifier, other PCRE functions ignore it.

A (PCRE_ANCHORED):
If this modifier is set, the pattern is forced to be "anchored", that is, it is forced to match only from the beginning of the target string.

D (PCRE_DOLLAR_ENDONLY):
If this modifier is set, the end of line ($) in the pattern only matches the end of the target string. Without this option, if the last character is a newline character, it will also be matched. This option is ignored if the m modifier is set.

S ​​:
When a pattern will be used several times, it is worth analyzing it first in order to speed up matching. If this modifier is set additional analysis will be performed. Currently, analyzing a pattern is only useful for non-anchored patterns that do not have a single fixed starting character.

U (PCRE_UNGREEDY):
Make the default matching of "?" greedy.

X (PCRE_EXTRA): Any backslash in the
pattern followed by a letter with no special meaning results in an error, thus preserving this combination for future extensions. By default, a backslash followed by a letter with no special meaning is treated as the letter itself.

u (PCRE_UTF8):
The pattern string is treated as UTF-8.

Note:

## Pattern Modifiers

i ——Can match both uppercase and lowercase letters
M ——Treat the string as multiple lines
S ​​ ——Treat the string as a single line, and use newline characters as ordinary characters Treat, making "." match any character
X - Blanks in the pattern are ignored
U - Match the nearest string
e -Use the replaced string as an expression

The above is the entire content of this article, I hope it will be helpful to everyone's learning.


Related recommendations:

phpRegular correction Detailed explanation of usage

phpRegular correctionDetailed explanation of symbol usage examples

php Regular correctionCharacter /i, /is, /s , /isU etc

The above is the detailed content of PHP regular modifier usage example analysis. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn