ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
| 正则表达式模式 | | | --- | --- | 正则表达式由定界符、原子、元字符、模式修正符组成 定界符: 一个正则表达式必须有定界符。除了数字,字母、下划线,其他都可以作为定界符。而行业中最常用的定界符是 "/",定界符是成对出现的,例如:"/\d/" 原子: 原子是正则表达式的最小组成单位。一个正则表达式要想有意义,则至少有一个原子 1、数字、字母、下划线,所有的打印字符都叫原子 2、非打印字符,如 \n 换行符 3、需要进行转义的字符。具有特殊含义的字符。例如:元字符 4、具有特殊含义的原子 5、自定义原子表 6、"." 点是任意原子 元字符: 元字符是用来修饰原子的 | 原子 | | | --- | --- | | 原子 | 具有特殊含义的原子 | | --- | --- | | \d | 代表所有的数字 | | \D | 代表了所有的非数字 | | \w | 数字、字母、下划线 | | \W | 非数字、字母、下划线 | | \s | 代表了所有的空白 | | \S | 代表了所有的非空白 | | . | 任意原子(字符) | | --- | --- | | 自定义原子表 | []指定原子的范围 | | [a-z] | 代表了所有的小写英文字母 | | [A-Z] | 代表了所有的大写英文字母 | | [0-9] | 代表了所有的数字 | | [a-z0-9] | 代表了所有的小写字母和所有数字 | | ^ | 代表非 | | 元字符 | | | --- | --- | | * | 代表被修饰的原子可以出现0次或者多次 | | + | 代表被修饰的原子可以出现1次或者多次 | | ? | 代表被修饰的原子可以出现0次或者1次 | | {m} | m是一个非负整数,代表被修饰的原子可以出现m次 | | {n, m} | n,m是一个非负整数,代表被修饰的原子可以出现最少n最多m次,n<=出现的次数 | | \| | 或,指明两项之间的一个选择。要匹配 \|,请使用 \\\| | | "^//$" | 代表以^开头,已$结尾,如果设置了 RegExp 对象的 Multiline 属性,属性,^或$ 还会与 \n 或 \r 之后的位置匹配 | | () | 括号代表要匹配的一部分,标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用 | | \ | 将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, 'n' 匹配字符 'n'。'\n' 匹配换行符。序列 '\' 匹配 "",而 '(' 则匹配 "("。^ 匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配 ^ 字符本身,请使用 ^。{ 标记限定符表达式的开始。要匹配 {,请使用 {。\b和\B \b代表字符边界,\B 代表了非字符边界 | | 贪婪模式 | | | --- | --- | | i | 不区分大小写,将会取消大小写敏感性,即"a"和"A" 是一样的 | | m | 默认的正则开始"^"和结束"$"只是对于正则字符串如果在修饰符中加上"m",那么开始和结束将会指字符串的每一行:每一行的开头就是"^",结尾就是"$" | | s | 模式中的圆点元字符(.)匹配所有的字符,包括换行符 | | x | 如果加上该修饰符,表达式中的空白字符将会被忽略,除非它已经被转义。模式中的空白字符除了被转义的或在字符类中的以外完全被忽略,在未转义的字符类之外的 # 以及下一个换行符之间的所有字符,包括两 头,也都被忽略 | | A | 如果使用这个修饰符,那么表达式必须是匹配的字符串中的开头部分。比如说"/a/A"匹配"abcd"。(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 起可用 | | e | 本修饰符仅仅对于replacement有用,代表在replacement中作为PHP代码 | | E | 与"m"相反,如果使用这个修饰符,那么"$"将匹配绝对字符串的结尾,而不是换行符前面,默认就打开了这个模式 |