PHP正则表达式 /i, /is, /s, /isU等
都是些什么东西呢?
1、正则表达式运算顺序
( ) 圆括号因为是内存处理所以最高
* ? + { } 重复匹配内容其次
^ $ \b 边界处理第三
条件处理第四
最后按照运算顺序计算匹配
2、正则表达式模式修正符
i 正则内容在匹配时候不区分大小写(默认是区分的)
m 在匹配首内容或者尾内容时候采用多行识别匹配
S 将转义回车取消是为单行匹配如. 匹配的时候
x 忽略正则中的空白
A 强制从头开始匹配
D 强制$匹配尾部无任何内容 \n
U 禁止贪婪匹配只跟踪到最近的一个匹配符并结束,
常用在采集程序上的正则表达式
i 匹配大小写
s
模式中的圆点元字符(.)匹配所有的字符,包括换行符
x
模式中的空白字符除了被转义的或在字符类中的以外完全被忽略,在未转义的字符类之外的 # 以及下一个换行符之间的所有字符,包括两头,也都被忽略
A (PCRE_ANCHORED)
如果设定了此修正符,模式被强制为“anchored”,即强制仅从目标字符串的开头开始匹配即自动在模式开头加上^。
D (PCRE_DOLLAR_ENDONLY)
如果设定了此修正符,模式中的美元元字符仅匹配目标字符串的结尾。没有此选项时,如果最后一个字符是换行符的话,美元符号也会匹配此字符之前(但不会匹配任何其它换行符之前)。如果设定了
m 修正符则忽略此选项。Perl 中没有与其等价的修正符。 S
当一个模式将被使用若干次时,为加速匹配起见值得先对其进行分析。如果设定了此修正符则会进行额外的分析。目前,分析一个模式仅对没有单一固定起始字符的
non-anchored 模式有用。
U (PCRE_UNGREEDY)
本修正符反转了匹配数量的值使其不是默认的重复,而变成在后面跟上“?”才变得重复。这和 Perl 不兼容。也可以通过在模式之中设定 (?U)
修正符来启用此选项。
X (PCRE_EXTRA) 此修正符启用了一个 PCRE 中与
Perl 不兼容的额外功能。模式中的任何反斜线后面跟上一个没有特殊意义的字母导致一个错误,从而保留此组合以备将 来扩充。默认情况下,和 Perl
一样,一个反斜线后面跟一个没有特殊意义的字母被当成该字母本身。当前没有其它特性受此修正符控制。即:贪婪模式,最
大限度匹配如:/a[\w]+?e/U匹配abceadeddd中的abceade而不是abce,如果不加U修正,则匹配abce u
(PCRE_UTF8) 此修正符启用了一个 PCRE 中与 Perl 不兼容的额外功能。模式字符串被当成 UTF-8。本修正符在 Unix 下自 PHP
4.1.0 起可用,在 win32 下自 PHP 4.2.3 起可用。
分享到:
相关推荐
模式修正符可以改变正则表达式的默认行为,以满足更复杂的文本处理需求。下面详细解释了在Perl兼容正则表达式(PCRE)中常用的模式修正符及其功能。 1. i (PCRE_CASELESS):不区分大小写的匹配。当使用这个修正符时...
修正符是在正则表达式模式后面放置的小写字母,用于调整匹配规则。下面我们将详细讲解这些修正符的用法。 1. **修正符:i** - 这个修正符表示不区分大小写匹配。例如,`/abc/i` 可以匹配 "abc"、"ABC"、"aBc" 等...
在正则表达式中,模式修正符(也称为修饰符或标志)是用于改变正则表达式行为的关键元素。它们是一些单个字母,可以添加到正则表达式的末尾来扩展其功能或调整匹配规则。模式修正符使得正则表达式更加灵活,能够适应...
在PHP中,正则表达式模式修正符是调整正则表达式行为的关键元素,它们以斜杠(`/`)分隔开,用于扩展正则表达式的功能。下面我们将详细解释一些常见的正则表达式模式修正符: 1. **i (PCRE_CASELESS)**:这个修正符使...
正则表达式的匹配先后顺序: 1.模式单元 2.重复匹配 ?... PHP与正则表达式中的模式修正符 下面列出了当前在 PCRE 中可能使用的修正符。括号中是这些修正符的内部 PCRE 名。 i (PCRE_CASELESS) 如果设定此
模式修正字符用于改变正则表达式的默认行为,如"i"使匹配不区分大小写,"m"让"^"和"$"分别匹配每一行的开头和结尾,"s"使"."能够匹配换行符等。 在PHP中,正则表达式有三个主要用途:匹配(用于从字符串中找到符合...
+ { } 重复匹配内容其次^ $ \b 边界处理第三| 条件处理第四最后按照运算顺序计算匹配2、正则表达式模式修正符i 正则内容在匹配时候不区分大小写(默认是区分的)m 在匹配首内容或者尾内容时候采用多行识别匹配S ...
总之,理解和掌握正则表达式的模式修正符、元字符以及捕获组的用法对于在PHP中处理多行文本至关重要。此外,了解何时使用正则表达式和何时转而使用更专门的解析工具,也是提高代码效率和健壮性的重要一环。
其中,`gim`是模式修正符,分别代表全局匹配(Global)、忽略大小写(Insensitive)和多行匹配(Multiline)。 2.1.2. 使用字面量表示法,如`/字符串/`,这通常更简洁且常用。例如,`/x61/`表示小写字母"a",而`\u...
在PCRE中,有多种模式修正符,可以通过在正则表达式后添加斜杠(/)和...以上是PHP正则表达式中常见的模式修正符/i, /is, /s, /isU等介绍。了解这些修正符及其用法,可以帮助我们在进行字符串处理时更加灵活和高效。
4. **模式修正符(Pattern Modifiers)**:修正符可以改变正则表达式的行为。`i`使匹配不区分大小写,`M`将字符串视为多行,`S`视字符串为单行,`X`忽略模式中的空白,`U`匹配最近的字符串,`e`使替换字符串作为表达式...
7. **模式修正符(Pattern Modifiers)**:如`i`忽略大小写,`m`多行模式,`s`单行模式,`X`忽略空白,`U`贪婪匹配改为非贪婪,`e`将替换字符串当作PHP代码执行。 正则表达式中的模式单元如`/1`可以用来提取匹配的...
点(.)在正则表达式中通常表示匹配任意字符,除了换行符,但可以通过转义(\)使其匹配字面的点。 2. 修正字符:星号(*)、加号(+)、问号(?)和花括号({})用于控制元字符的重复次数。星号表示零次或多次,...
如果输入符合正则表达式定义的模式,表单数据将被处理,否则会提示用户修正。这种逻辑判断能力使得正则表达式在数据验证和处理中扮演了重要角色。 要掌握正则表达式,不仅要理解基本语法和元字符,还需要通过实践来...