我用正则表达式快速制得了一份单词默写纸

386 阅读1分钟

这是我为了提高效率给自己写的,顺手发到掘金上来,如有不足之处,欢迎批评指正。

首先奉上测试用例:

let str = `religious adj. 宗教上的;信奉宗教的;虔诚的

△seasonal adj. 季节的;季节性的

ancestor n. 祖先;祖宗`;

I. 去除中文,保留带△单词

代码

str.replace(/([^\x00-\xff^△]|\x3b)*/g, '');

输出示例:

religious adj. 

△seasonal adj. 

ancestor n. 

II. 去除中文,不保留带△单词

代码

str.replace(/^△.*?\n$\n|([^\x00-\xff]|\x3b)*/gm, '');

输出示例:

religious adj. 

ancestor n. 

III. 去除英文,保留带△的单词

代码

str.replace(/^[…△\w\s]*(?=((adj|adv|art|v|vi|vt|n|num|pron|prep|int|conj)\.)|[^\x00-\xff])/gm, '');

输出示例:

adj. 宗教上的;信奉宗教的;虔诚的
adj. 季节的;季节性的
n. 祖先;祖宗

IV. 去除英文,不保留带△的单词

代码

str.replace(/^△.*?\n$\n|^[…\w\s]*(?=((adj|adv|art|v|vi|vt|n|num|pron|prep|int|conj)\.)|[^\x00-\xff])/gm, '');

输出示例:

adj. 宗教上的;信奉宗教的;虔诚的
n. 祖先;祖宗