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
夜雨聆风