快速入门
此功能需要用户了解一点正则表达式的入门知识,如果您还不了解,可在入门必读中学习。
这种类型材料如果问题和答案开头部分都有明显的标记符号的话,可以很容易地通过正则表达式
来自动匹配问题和答案起始位置并提取出问题文本和答案文本。
类型一:列表 型
问题单行
文本材料示例:
1、Do not teach fish to swim.
不要班门弄斧。
2、Experience is the best teacher.
实践出真知。
3、Faith can move mountains.
精诚所至,金石为开。
4、Haste makes waste.
欲速则不达。
5、He would climb the ladder must begin at the bottom.
千里之行始于足下。
6、It is never too late to mend.
亡羊补牢,犹未为晚。
制卡参数填写示例:

这里因为材料比较简单,每个问题只有一行,所以要把问题单行
开关打开,否则会把整个题目以及答案都作为正面。
如果你的问题是占多行的,那么就要关闭问题单行
开关并给出Back
字段的匹配模式。
制卡效果展示:

问题多行
当问题可能占多行时,要关闭问题单行
选项。并且要在材料的答案部分开头处添加标记,方便填写对应的匹配模式。
文本材料示例:
1. 世界上面积最大的国家是哪个?
它的首都是什么?
该国横跨哪两个大洲?
答案:俄罗斯,首都是莫斯科,横跨欧洲和亚洲。
2.中国古代的“四大发明”分别是什么?
其中哪一项对欧洲文艺复兴时期的科学传播起到了关键作用?
答案:指南针、火药、造纸术、印刷术;印刷术(活字印刷)对欧洲文艺复兴的知识传播有重大影响。
3.人体最大的器官是什么?
它有哪些主要功能?
答案:皮肤,功能包括保护身体、调节体温、感知外界刺激等。
4.光在真空中的传播速度是多少?
这一数值在物理学中通常用什么符号表示?
答案:约299,792,458米/秒,符号为“c”。
5.《百家姓》中排名前四的姓氏是什么?
这部作品成书于哪个朝代?
答案:赵、钱、孙、李;成书于北宋。
制卡参数填写示例:

制卡效果展示:

类型二:问答型
文本材料示例:
问:什么是地球上最高的山峰?
答:珠穆朗玛峰。
问:谁是著名的相对论物理学家,提出了相对论 理论?
答:阿尔伯特·爱因斯坦。
问:金星的英文名是什么?
答:Venus。
问:梵高是哪个国家的著名画家?
答:荷兰。
问:人体最大的器官是什么?
答:皮肤。
制卡参数填写示例:

制卡效果展示:

类型三:Markdown标题型
本软件也支持使用Markdown格式文本制卡,并支持保留Markdown中设置的语法样式。
Markdown 是一种轻量级的标记语言,可用于在纯文本文档中添加格式化元素,比如 设置标题、加粗、斜体、插入图片、表格、公式等,使用户可以专注于文字内容,同时也能做出美观大方的排版。Markdown是一种非常流行的格式,已经被众多笔记平台支持,如Obsidian、思源笔记、Logseq等等。
在Markdown中,使用#
开头的符号作为标题的标记,如# 一级标题
。因此,可以使用标题内容作为问题部分,标题下的子内容作为答案部分制卡。
除了使用标题语法制卡外,本软件也支持使用其他Markdown语法制卡,如有序列表(1.)、无序列表(*,-,+)、引用(>)等,甚至用户也可以自己定义匹配模式。

文本材料示例:
## 什么是三次握手 (three-way handshake)?

- 第一次握手:Client将SYN置1,随机产生一个初始序列号seq发送给Server,进入SYN_SENT状态;
- 第二次握手:Server收到Client的SYN=1之后,知道客户端请求建立连接,将自己的SYN置1,ACK置1,产生一个acknowledge number=sequence number+1,并随机产生一个自己的初始序列号,发送给客户端;进入SYN_RCVD状态;
- 第三次握手:客户端检查acknowledge number是否为序列号+1,ACK是否为1,检查正确之后将自己的ACK置为1,产生一个acknowledge number=服务器发的序列号+1,发送给服务器;进入ESTABLISHED状态;服务器检查ACK为1和acknowledge number为序列号+1之后,也进入ESTABLISHED状态;完成三次握手,连接建立。
## TCP建立连接可以两次握手吗?为什么?
不可以。有两个原因:
首先,可能会出现**已失效的连接请求报文段又传到了服务器端**。
> client 发出的第一个连接请求报文段并没有丢失,而是在某个网络结点长时间的滞留了,以致延误到连接释放以后的某个时间才到达 server。本来这是一个早已失效的报文段。但 server 收到此失效的连接请求报文段后,就误认为是 client 再次发出的一个新的连接请求。于是就向 client 发出确认报文段,同意建立连接。假设不采用 “三次握手”,那么只要 server 发出确认,新的连接就建立了。由于现在 client 并没有发出建立连接的请求,因此不会理睬 server 的确认,也不会向 server 发送数据。但 server 却以为新的运输连接已经建立,并一直等待 client 发来数据。这样,server 的很多资源就白白浪费掉了。采用 “三次握手” 的办法可以防止上述 现象发生。例如刚才那种情况,client 不会向 server 的确认发出确认。server 由于收不到确认,就知道 client 并没有要求建立连接。
其次,两次握手无法保证Client正确接收第二次握手的报文(Server无法确认Client是否收到),也无法保证Client和Server之间成功互换初始序列号。
还有就是两次握手会给SYN flood攻击提供机会。
扩展阅读: 什么是SYN攻击?https://zhuanlan.zhihu.com/p/360479307
制卡参数填写示例:

制卡效果展示:

类型四:自定义正则匹配
上面列举了一些典型的文本材料类型,但是仍然有很多的文本不属于这些类型,为了尽量兼容更多的文本类型,本软件支持用户自己编写正则表达式来匹配文本。
只要你的文本材料的问题开头部分有明显的特征,并且可以用正则表达式表示,都可以支持制卡。
如果你对正则表达式还不了 解,可以看下这个教程:正则表达式30分钟入门教程
文本材料示例:
题目1:什么是地球上最高的山峰?
回答:珠穆朗玛峰。
题目2:谁是著名的相对论物理学家,提出了相对论理论?
回答:阿尔伯特·爱因斯坦。
题目3:金星的英文名是什么?
回答:Venus。
题目4:梵高是哪个国家的著名画家?
回答:荷兰。
题目5:人体最大的器官是什么?
回答:皮肤。
使用自定义正则匹配制卡的关键在于寻找问题(和答案)开头是否有明显的模式特征,并用正则表达式表达出来。
在这个材料中,我们发现:
- 所有题目开头都有明显的特征,即都是以
题目
字符后面加一个阿拉伯数字来标记问题开始,那么我们的问题匹配模式就可以用正则表达式题目\d+
来表示(\d
表示0-9的数字,+
表示数量为1个以上)。 - 所有答案开头都有明显的特征,即都是以
回答
字符作为答案开始的标记,那么我们的答案匹配模式就可以填写回答
。
制卡参数填写示例:

制卡效果展示:
