梗概

为方便提取匹配到的指定部分内容, 用圆括号()把指定内容括起来, 表示捕获组

  • 替换的时候可以用$1(或正则表达式中使用\1\2…)表示第一个捕获组中匹配到的内容, 同理$2为第二个捕获组中的内容
  • 而有时需要使用()来分组, 但又不想要因此多出一组捕获结果, 需要用非捕获组: (?:)
    • 这时通过$1(或$2\1, \2…), 是得不到非捕获组中的字符串
    • 但仍会匹配(?:)中的字符串
  • child::命名捕获组
    • 命名捕获组依然可以通过捕获组的序号获取