1 Matching Annotations
  1. Apr 2025
    1. 你需要注意C语言字符串中转义字符的存在和正则表达式中元字符的功能.
      1. C语言字符串中的转义字符 在C语言中,字符串由双引号括起来,其中一些字符不能直接以字面值表示,需要使用转义字符。转义字符是由反斜杠 \ 开头,后面跟一个或多个字符,用于表示一些特殊含义。常见的转义字符包括:

      \n:表示换行(newline)。

      \t:表示制表符(tab)。

      \:表示反斜杠自身。

      \":表示双引号,用于在字符串中包含双引号。

      \0:表示字符串结束符(null character)。

      \r:回车(carriage return)。

      \b:退格(backspace)。

      这些转义字符在编译时会被转换为对应的字符,方便在字符串中表达无法直接键入的特殊字符。

      1. 正则表达式中的元字符 正则表达式(Regular Expression)是一种描述字符串匹配模式的语言,其中有一组特殊字符称为元字符(Metacharacters),它们具有特殊的匹配意义。例如:

      .:匹配除换行符外的任意单个字符。

      ^:匹配字符串的开始位置。

      $:匹配字符串的结束位置。

      *:匹配前面的子表达式零次或多次。

      +:匹配前面的子表达式一次或多次。

      ?:匹配前面的子表达式零次或一次;在某些情况下也表示非贪婪匹配。

      []:表示字符集合,匹配其中的任一字符。

      ():用于分组,或者捕获匹配结果。

      {}:用于指定前面的子表达式的匹配次数(比如 {n}、{n,}、{n,m})。

      \:转义字符,用来取消元字符的特殊意义,使其作为普通字符处理;同时也用于表示一些预定义的字符类(如 \d 表示数字)。

      在正则表达式中,如果希望匹配这些元字符的字面含义,就需要在它们前面加上反斜杠进行转义。

      结合在一起的注意事项 当你在C语言的字符串中写正则表达式时,由于两边都有转义规则,你通常需要额外注意。例如,要在正则表达式中匹配加号 +(作为字面字符),你需要写成 "\+":

      C语言层面:字符串中的 "\+" 实际上表示一个反斜杠和一个加号。

      正则表达式层面:反斜杠使得加号失去了元字符的意义,从而匹配字面意义上的 +。