乐于分享
好东西不私藏

PDF Guru Anki使用文档:如何使用正则表达式

PDF Guru Anki使用文档:如何使用正则表达式

正则表达式(Regular Expression,简称regex或regexp)就像是你在文本搜索时用到的一个特别的模板或者说是模式,它可以帮助你找到符合这个模式的所有字符串。

以下介绍正则表达式的常用语法

1. 普通字符

直接匹配文字本身。比如cat会匹配文本中的“cat”三个字母。

2. 元字符(特殊符号)

  • . :匹配任意一个字符(除了换行)。

例子:a.c能匹配“abc”、“a@c” 或 “a3c”

  • \d:匹配一个数字(0-9)。

例子:1\d{10} 匹配以1开头的11位手机号(大括号里的10表示匹配的位数是10)

  • \w:匹配字母、数字或下划线(相当于[a-zA-Z0-9_])。
  • \s :匹配空白符(空格、Tab、换行等)。
  • ^ 和 $ :匹配开头和结尾。

例子:^Hello 匹配以 Hello 开头的句子,end$ 匹配以 end 结尾的句子

  • [] :匹配括号内的任意一个字符。

例子:[aeiou] 匹配任意一个元音字母

  • () :将部分正则表达式分组。

例子:(ab)+ 会匹配一个或多个”ab”序列

  • | :表示“或”。

例子:苹果|香蕉匹配 “苹果” 或 “香蕉”

3. 量词(控制重复次数)

  • ? :前面的内容出现 0次或1次。

例子:colou?r 匹配 “color” 或 “colour”

  • + :前面的内容出现至少1次。

例子:a+ 匹配 “a”、“aaa” 等

  • * :前面的内容出现任意次数(包括0次)。
  • {n} :精确匹配n次。

例子:\d{4} 匹配4位数字(如年份2025)

  • {n,m} :匹配 n到m次。

例子:\d{3,8}匹配3到8位数字

4. 实际案例

  • 匹配手机号:^1[3-9]\d{9}$
    • ^1:以1开头
    • [3-9]:第二位是3-9的任意数字
    • \d{9}$:后面接9位数字,总长度11位
  • 匹配邮箱:^\w+@\w+\.[a-z]{2,3}$
    • \w+:用户名(字母/数字/下划线)
    • @:必须有@符号
    • \w+:邮箱服务商(如gmail)
    • \.[a-z]{2,3}:以 .com/.cn 等结尾

下面列举了本软件中常用到的一些内置的正则匹配模式及其含义

💡提示

以下匹配模式是软件中为方便用户阅读简化后的模式,并非实际的完整正则表达式(如\d+会简化为1)。

如果你不使用内置的匹配模式而是使用自定义正则模式,请务必严格按照规范的正则表达式语法书写,不要简单模仿简化后的匹配模式。

  • 1[..、] xx:匹配以阿拉伯数字序号开头且后面跟[..、]中任一标点的文本

例子:3、《申报》刊登了武汉国民政府…

  • 1 xx:匹配以阿拉伯数字序号开头的文本

例子:3《申报》刊登了武汉国民政府…

  • 一[、..] xx:匹配以中文数字开头且后面跟[..、]中任一标点的文本

例子:三、《申报》刊登了武汉国民政府…

  • 问题: xx:匹配以问题开头的文本

例子:问题:1+1=?

  • 答案: xx:匹配以答案开头的文本,可用于匹配问答题或选择题制卡的答案部分

例子:答案:2

  • 【答案】 xx:匹配以【答案】开头的文本,可用于匹配问答题或选择题制卡的答案部分

例子:【答案】2

  • 【解析】 xx:匹配以【解析】开头的文本,可用于匹配问答题或选择题制卡的解析部分

例子:【解析】这是由于xx

  • Q: xx:匹配以Q:开头的文本

例子:Q:1+1=?

  • A: xx:匹配以A:开头的文本

例子:A:2

  • ## xx:匹配以##开头的文本,可用于匹配Markdown中二级标题

例子:## 什么是正则表达式

  • [A-G][..、::]:匹配以A-G字母开头且后面跟[..、::]中任一标点的文本,可用于匹配选择题制卡中的选项

例子:A、1 B、2 C、3