正则表达式简述

发布于:2025-03-08 ⋅ 阅读:(34) ⋅ 点赞:(0)
  1. 普通字符
    普通字符代表它们自身,用于精确匹配字符串中的字符。例如,a 匹配字符 a,1 匹配数字 1。
  2. 元字符
    元字符是具有特殊含义的字符,用于匹配特定类型的字符或字符串模式。
    常用元字符
    . :匹配除换行符以外的任意单个字符。例如,a.c 可以匹配 abc、a1c 等。
    ^ :匹配字符串的开始位置。例如,^abc 只匹配以 abc 开头的字符串。
    $ :匹配字符串的结束位置。例如,abc$ 只匹配以 abc 结尾的字符串。
    * :匹配前面的元素零次或多次。例如,ab*c 可以匹配 ac、abc、abbbc 等。
    + :匹配前面的元素一次或多次。例如,ab+c 可以匹配 abc、abbbc 等,但不能匹配 ac。
    ? :匹配前面的元素零次或一次。例如,ab?c 可以匹配 ac 或 abc。
    {n} :匹配前面的元素恰好 n 次。例如,a{3} 只匹配 aaa。
    {n,} :匹配前面的元素至少 n 次。例如,a{3,} 可以匹配 aaa、aaaa 等。
    {n,m} :匹配前面的元素至少 n 次,但不超过 m 次。例如,a{3,5} 可以匹配 aaa、aaaa、aaaaa。
    | :或运算符,匹配两个或多个模式中的任意一个。例如,a|b 可以匹配 a 或 b。
    () :分组,用于将多个元素组合成一个单元,并可以对分组应用量词或其他操作。例如,(ab)+ 可以匹配 ab、abab 等。
  3. 字符类
    字符类用于匹配一组字符中的任意一个。
    常用字符类
    [ ]:匹配方括号内的任意一个字符。例如,[abc] 可以匹配 a、b 或 c。
    [^ ]:匹配不在方括号内的任意一个字符。例如,[^abc] 可以匹配除 a、b、c 以外的任意字符。
    [a-z]:匹配任意小写字母。
    [A-Z]:匹配任意大写字母。
    [0-9]:匹配任意数字。
    [a-zA-Z0-9]:匹配任意字母或数字。
  4. 预定义字符类
    预定义字符类是一些常用字符类的缩写。
    常用预定义字符类
    \d:等价于 [0-9],匹配任意数字。
    \D:等价于 [^0-9],匹配任意非数字字符。
    \w:等价于 [a-zA-Z0-9_],匹配任意字母、数字或下划线。
    \W:等价于 [^a-zA-Z0-9_],匹配任意非字母、数字或下划线的字符。
    \s:匹配任意空白字符,包括空格、制表符、换行符等。
    \S:匹配任意非空白字符。
  5. 边界匹配
    边界匹配用于匹配字符串中的特定位置。
    常用边界匹配
    \b:匹配单词边界,即单词与非单词字符之间的位置。例如,\bcat\b 只匹配独立的单词 cat,而不匹配 category 中的 cat。
    \B:匹配非单词边界。
  6. 贪婪与非贪婪匹配
    贪婪匹配:默认情况下,量词(如 *、+、{n,} 等)是贪婪的,即尽可能多地匹配字符。例如,a.b 会匹配从第一个 a 到最后一个 b 之间的所有字符。
    非贪婪匹配:在量词后面加上 ? 可以将其变为非贪婪匹配,即尽可能少地匹配字符。例如,a.
    ?b 会匹配从第一个 a 到最近的一个 b 之间的字符。

网站公告

今日签到

点亮在社区的每一天
去签到