正则表达式

七言 2025-8-1 96 8/1

[TOC]

正则表达式

正则表达式设计

基本语法

  • 在Mysql中,REGEXPRELIKE是用于正则表达式匹配的操作符,两者功能相同,可以互换使用。 示例
    SELECT * FROM table_name 
    WHERE column_name REGEXP 'pattern';
     
    -- 或者使用RLIKE
    SELECT * FROM table_name 
    WHERE column_name RLIKE 'pattern';

    常见的正则表达式

    1.字符类

    元字符 含义 示例
    . 匹配任意单个字符 a.b匹配 a 后面跟着任何字符,再跟着 b,如 a1ba-b
    [abc] 匹配方括号内的任意一个字符 [abc] 匹配 abc
    [^ abc] 匹配不在方括号内的任意一个字符 [^abc] 匹配除 abc 之外的任何字符
    [a-z] 匹配指定范围内的任意一个字符 [a-z] 匹配任何小写字母
    [A-Z] 匹配指定范围内的任意一个字符 [A-Z] 匹配任何大写字母
    [0-9] 匹配任何数字 [0-9] 匹配任何单个数字

    2.预定义字符类

    预定义字符 含义 等价写法
    \d 匹配任何数字 [0-9]
    \D 匹配任何非数字字符 ^[0-9]
    \s 匹配任何空白字符,包括空格、制表、换行符等 [ \t\r\n\f]
    \S 匹配任何非空白字符 [ ^ \t\r\n\f]
    \w 匹配任何字母数字字符 [a-zA-Z0-9]
    \W 匹配任何非字母数字字符 [^ a-zA-Z0-9]

    3.边界匹配

    边界字符 含义 示例
    ^ 匹配字符串开头 ^abc 匹配 abc...
    $$ 匹配字符串结尾 xyz$ 匹配 ...xyz
    \b 匹配单词边界 \bword\b 匹配完整的单词 word

    4.量词

    量词字符 含义 示例
    * 匹配前面的字符0次或多次 a* 匹配 '', a, aa
    + 匹配前面的字符1次或多次 a+ 匹配 a, aa
    ? 匹配前面的字符0次或1次 colou?r 匹配 colorcolour
    {n} 匹配前面的字符恰好n次 a{3} 匹配恰好 3 个 a,如 aaa
    {n,} 匹配前面的字符至少n次 a{3,} 匹配 3 个或更多 a,如 aaaaaaa
    {n,m} 匹配前面的字符至少n次,但不超过m次 a{2,4} 匹配 2 到 4 个 a,如 aaaaaaaaa

    5.分组和捕获

    字符 含义 示例
    () 匹配分组并捕获 (abc) 匹配 abc,并捕获匹配的内容
    (?:...) 非捕获分组,匹配但不捕获匹配的内容 (?:abc) 匹配 abc,但不捕获匹配的内容

    6.选择

    字符 含义 示例
    \| 匹配多个模式中的一个 abc\|def 匹配 abcdef

    7.断言

    字符 含义 示例
    (?=...) 正前瞻断言,匹配后面跟着指定模式的字符 abc(?=def) 匹配 abc,但只有在其后面跟着 def 时才匹配
    (?!...) 负前瞻断言,匹配后面不跟着指定模式的字符 abc(?!def) 匹配 abc,但只有在其后面不跟着 def 时才匹配
    (?<=...) 正后顾断言,匹配前面跟着指定模式的字符 (?<=abc)def 匹配 def,但只有在其前面跟着 abc 时才匹配
    (?<!...) 负后顾断言,匹配前面不跟着指定模式的字符 (?<!abc)def 匹配 def,但只有在其前面不跟着 abc 时才匹配

- THE END -

七言

8月01日15:51

最后修改:2025年8月1日
0

非特殊说明,本博所有文章均为博主原创。

共有 0 条评论