Fitten_Code生成正则表达式:利用自然语言描述快速获取匹配规则
正则表达式这东西,写起来真是让人又爱又恨。爱的是它的强大,一段短短的模式就能搞定复杂的文本匹配;恨的是手写的繁琐和易错,尤其是要匹配手机号、身份证号这种规则多又密的玩意儿,反复调试到崩溃是常事。Fitten Code 这个VS Code插件,正好解决了这个痛点——它能把自然语言描述实时转成可运行的正则表达式,让程序员把精力放在业务逻辑上,而不是跟反斜杠和字符集死磕。
举个例子:你只要在编辑器里写一句“匹配中国大陆18位身份证号码,最后一位可能是X”,选中这行文字,右键选择“Fitten Code: Generate Regex from Selection”,下一秒就能得到一个符合GB 11643-1999标准的正则表达式,直接复制到JS或Python代码里就能用。如果生成的表达式不够精确,还可以通过Edit Regex Prompt修改描述,重新生成——整个过程不需要动脑手写,真的省心。

面对一段中文文本,需要快速提取手机号、身份证号或邮箱地址?Fitten Code 允许你直接用“匹配11位数字且以1开头的手机号”这种大白话描述,插件就会自动将其编译成可运行的正则表达式。从描述到正则,一步到位。
安装并启动Fitten Code插件
打开VS Code,左侧活动栏点击扩展图标(或按 Ctrl+Shift+X),在搜索框输入
【Fitten Code】
用自然语言生成正则表达式
新建一个空白文件(Ctrl+N),保存为 .txt 或 .js 后缀均可。在编辑器中输入你想要的自然语言描述,比如“匹配中国大陸18位身份证号码,最后一位可能是X”,选中这句话,右键选择“Fitten Code: Generate Regex from Selection”。插件会在光标下方插入一行正则:/^[1-9]d{5}(18|19|20)d{2}(0[1-9]|1[0-2])(0[1-9]|[12]d|3[01])d{3}[dXx]$/。这个表达式严格遵循GB 11643-1999标准,能识别年份范围、月份天数合法性,
【不校验校验码算法,仅做格式初筛】
如果描述太模糊,比如只写“找邮箱”,插件会生成较宽泛的 /S+@S+.S+/;想要更精准,就加上限定词,比如“匹配带.edu.cn域名的教育邮箱”,生成结果自动收紧为 /[w.-]+@[w.-]+.(edu.cn)/。描述越精确,结果越符合预期。
在代码中直接使用生成的正则
方法一:Ja vaScript中赋值调用。把生成的正则复制进代码:const idRegex = /^[1-9]d{5}(18|19|20)d{2}(0[1-9]|1[0-2])(0[1-9]|[12]d|3[01])d{3}[dXx]$/;,后续用 idRegex.test(str) 即可验证。
方法二:Python中嵌入使用。去掉正则首尾的斜杠,并处理转义:r'^[1-9]d{5}(18|19|20)d{2}(0[1-9]|1[0-2])(0[1-9]|[12]d|3[01])d{3}[dXx]$',直接传给 re.match() 或 re.search() 即可。
注意:Fitten Code默认输出JS风格正则,如果用在Ja va或Go中,需要手动将 d 改为 \d(因为字符串字面量需要双转义)。这个小细节记得留意一下。
修正生成结果的常见操作路径
如果生成的正则不满足需求,想调整描述重新生成,可以按以下步骤操作。首先,选中已生成的正则表达式整行,按 Ctrl+X 剪切。然后,在编辑器顶部菜单栏点击“查看”→“命令面板”(或直接按 Ctrl+Shift+P),输入“Fitten Code: Edit Regex Prompt”,回车。在弹出的输入框中修改原始描述,例如把“11位手机号”改成“11位大陆手机号,排除170/171/172虚拟号段”,回车后新正则自动替换原内容。
这一步不能跳过提示框直接编辑文字——