2006年世界杯歌曲_冰岛世界杯排名 - guoyunzhan.com

  • 首页
  • 世界杯黑马
  • 世界杯直播app
  • 世界杯小组赛规则
  • 2026-08-11 11:26:00

    正则表达式中的特殊字符

    正则表达式中的特殊字符

    举报

    福州司马懿

    发表于 2025/09/21 23:57:50

    2025/09/21

    【摘要】 在正则表达式中,特殊字符(也称为元字符)是具有特殊含义的字符,用于定义匹配规则。它们与普通字符(如字母、数字)不同,需要通过转义(通常加反斜杠 \)来表示其字面意义。以下是正则表达式中常见的特殊字符及其用法: 一、基础特殊字符字符含义示例.匹配任意单个字符(除换行符 \n,除非启用 DOTALL 模式)。a.c → “abc”, “a1c”, “a c”^匹配字符串的开头(或在字符组 [] ...

    在正则表达式中,特殊字符(也称为元字符)是具有特殊含义的字符,用于定义匹配规则。它们与普通字符(如字母、数字)不同,需要通过转义(通常加反斜杠 \)来表示其字面意义。以下是正则表达式中常见的特殊字符及其用法:

    一、基础特殊字符

    字符

    含义

    示例

    .

    匹配任意单个字符(除换行符 \n,除非启用 DOTALL 模式)。

    a.c → “abc”, “a1c”, “a c”

    ^

    匹配字符串的开头(或在字符组 [] 内表示否定)。

    ^Hello → 以 “Hello” 开头的字符串

    $

    匹配字符串的结尾。

    world$ → 以 “world” 结尾的字符串

    *

    匹配前面的元素0次或多次。

    ab*c → “ac”, “abc”, “abbc”

    +

    匹配前面的元素1次或多次。

    go+l → “gol”, “gool”, “gooool”

    ?

    匹配前面的元素0次或1次(或表示非贪婪模式的修饰符)。

    colou?r → “color” 或 “colour”

    `

    `

    表示逻辑或(匹配左边或右边的表达式)。

    二、字符组(Character Classes)

    字符

    含义

    示例

    [ ]

    匹配括号内的任意一个字符。

    [abc] → “a”, “b”, 或 “c”

    [^ ]

    匹配不在括号内的任意一个字符(否定字符组)。

    [^0-9] → 非数字字符

    [a-z]

    匹配小写字母范围(可组合使用)。

    [a-zA-Z0-9] → 字母或数字

    \d

    匹配数字(等价于 [0-9])。

    \d{3} → “123”, “456”

    \D

    匹配非数字(等价于 [^0-9])。

    \D+ → “abc”, “!@#”

    \w

    匹配单词字符(字母、数字、下划线,等价于 [a-zA-Z0-9_])。

    \w+ → “Java”, “hello_123”

    \W

    匹配非单词字符(等价于 [^\w])。

    \W+ → " ", “-”, “@”

    \s

    匹配空白字符(空格、制表符 \t、换行符 \n 等)。

    \s+ → " \t\n"

    \S

    匹配非空白字符(等价于 [^\s])。

    \S+ → “Hello”, “123”

    三、量词(Quantifiers)

    字符

    含义

    示例

    {n}

    匹配前面的元素恰好 n 次。

    \d{4} → “2023”

    {n,}

    匹配前面的元素至少 n 次。

    \d{2,} → “10”, “123”, “1000”

    {n,m}

    匹配前面的元素至少 n 次,最多 m 次。

    \d{2,4} → “12”, “123”, “1234”

    *

    等价于 {0,}(0次或多次)。

    ab*c → “ac”, “abc”, “abbc”

    +

    等价于 {1,}(1次或多次)。

    go+l → “gol”, “gool”

    ?

    等价于 {0,1}(0次或1次)。

    colou?r → “color” 或 “colour”

    四、边界匹配(Anchors)

    字符

    含义

    示例

    ^

    匹配字符串的开头(或在多行模式下匹配行的开头)。

    ^Hello → “Hello…”

    $

    匹配字符串的结尾(或在多行模式下匹配行的结尾)。

    world$ → “…world”

    \b

    匹配单词边界(即单词与非单词字符之间的位置)。

    \bcat\b → “cat”(不匹配 “category”)

    \B

    匹配非单词边界。

    \Bcat\B → “scatter” 中的 “cat”

    五、分组与引用

    字符

    含义

    示例

    ( )

    捕获分组:将多个字符视为一个单元,并记住匹配的文本(可通过 \1, \2 引用)。

    (ab)+ → “ab”, “abab”

    (?: )

    非捕获分组:分组但不记住匹配的文本(性能更高)。

    (?:ab)+ → 同上,但不捕获分组

    \n

    引用第 n 个捕获分组(n 为 1-9 的数字)。

    (\d)\1 → “11”, “22”(匹配重复数字)

    六、转义字符

    如果需要匹配特殊字符本身的字面值(而非其特殊含义),需用反斜杠 \ 转义:

    字符

    转义后含义

    示例

    \.

    匹配字面意义的点号 .

    192\.168\.1\.1 → “192.168.1.1”

    \\

    匹配字面意义的反斜杠 \

    C:\\Users\\ → “C:\Users”

    \*

    匹配字面意义的星号 *

    a\*b → “a*b”

    七、高级特殊字符

    字符

    含义

    示例

    ?=

    正向预查:匹配后面跟着指定模式的字符串(不消耗字符)。

    foo(?=bar) → “foobar” 中的 “foo”

    ?!

    负向预查:匹配后面不跟着指定模式的字符串。

    foo(?!bar) → “foobaz” 中的 “foo”

    ?<=

    正向回顾后发:匹配前面是指定模式的字符串(不消耗字符)。

    (?<=foo)bar → “foobar” 中的 “bar”

    ?

    负向回顾后发:匹配前面不是指定模式的字符串。

    (?

    八、常见正则表达式示例

    匹配邮箱地址:^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$

    匹配URL:https?://(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()@:%_\+.~#?&//=]*)

    匹配手机号(中国):^1[3-9]\d{9}$

    提取HTML标签:<([a-z]+)([^<]+)*(?:>(.*?)<\/\1>|\s+\/>)

    总结

    特殊字符是正则表达式的核心,通过组合它们可以构建复杂的匹配规则。

    转义是关键:若需匹配字面意义的特殊字符(如 .、*),需用 \ 转义。

    分组与引用可用于提取或重复匹配子模式。

    预查和回顾后发用于更精确的上下文匹配(如“匹配后面跟着X的Y”)。

    推荐

    华为开发者空间发布

    让每位开发者拥有一台云主机

    【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:

    cloudbbs@huaweicloud.com

    正则表达式

    点赞

    收藏

    关注作者

    光遇不买季卡能毕业吗
    战时的意思
    世界杯小组赛规则

    友情链接:

    ©Copyright © 2022 2006年世界杯歌曲_冰岛世界杯排名 - guoyunzhan.com All Rights Reserved.