/

正则表达式记录

  1. 锚点
    • . 任意单个字符(除了换行符)
    • ^ 匹配输入字符串的开始位置
    • $ 匹配输入字符串的结束位置
    • \b 单词边界
    • \B 非单词边界
  2. 字符串
    • [a-z] 匹配范围
    • [abc] 匹配字符集
    • [^abc] 否定字符集
    • \d 匹配任意一个数字(0-9)
    • \D 匹配任意一个非数字字符
    • \w 任意一个字母数字字符(等价于[a-zA-Z0-9_])
    • \W 任意一个非字母数字字符
    • \d 任意数字
    • \D 任意非数字
    • \s 空白符
    • \S 非空白符
  3. 量词
    • * 匹配前面的子表达式零次或多次
    • + 匹配前面的子表达式一次或多次
    • ? 匹配前面的子表达式零次或一次
    • {n} 匹配确定的n次
    • {n,} 至少匹配n次
    • {n,m} 最少匹配n次且最多m次
  4. 分组与捕获
    • (group) 将多个表达式合并为一个组
    • (?:group) 非捕获组,不捕获匹配的文本
  5. 选择与逻辑或
    • | 匹配两项之间的任意一项
  6. 转义
    • \ 用于转义特殊字符或表示特殊序列
  7. 断言
    • ?= 正向前瞻断言,匹配后面跟随特定模式的字符串
    • ?! 负向前瞻断言,匹配后面不跟随特定模式的字符串
    • ?<= 正向后瞻断言,匹配前面是特定模式的字符串
    • ?<! 负向后瞻断言,匹配前面不是特定模式的字符串
  8. 标志
    • i 忽略大小写
    • g 全局搜索
    • m 多行搜索

那么现学现卖,我发现原来的引用后面没有空格,我肯定是不会一个一个加的,那么怎么办呢?

想一想再看答案噢XD (?<=`[^`]*)`:
其实是匹配两个反引号中的第二个,而他们之间有任意字符内容。