如何使用JavaScript正则匹配连续以///开头的JSDocs代码块
连续///开头JSDoc块正则匹配修正方案
- 原有问题分析
你写的正则存在两个核心问题:- 语法错误:开头多了冗余左括号,且没有对连续行匹配规则做正确的量词限定
- 边界逻辑缺陷:必须以「非///开头的行」作为终止边界,若匹配块位于文本末尾,没有后续行触发终止判断就会匹配失败,要求末尾双换行本质是需要有明确的非///段落作为终止标识
- 修正后正则
/^\/\/\/.*(?:\n\/\/\/.*)*/gm - 匹配逻辑说明
开启全局(g)和多行(m)匹配模式后:
^\/\/\/.*匹配任意以///开头的完整行(?:\n\/\/\/.*)*为非捕获组,匹配0次或多次「换行后接///开头的完整行」,可以连贯匹配所有连续的///开头行,不需要依赖后续非///内容作为终止条件,即使匹配块在文本末尾也能正常识别
该正则可以完全覆盖你给出的示例场景,不需要匹配块末尾有额外换行。
内容的提问来源于stack exchange,提问作者xDGameStudios
相关产品推荐
相关产品推荐

