Regex实现:移除多行注释保留换行、匹配删除行首单行注释
正则处理规则实现方案
模式开启要求
处理前需要给正则引擎开启两个模式:
- 多行模式(标识为
m):让定位符^可以匹配每一行的行首位置 - 单行模式/DOTALL模式(标识为
s):让通配符.可以匹配换行符
步骤1:删除行首起始的单行注释
- 匹配正则:
^//.*\n? - 替换内容:空字符串
- 逻辑说明:只匹配整行从行首开始的
//注释,整行连带末尾可选的换行符一起删除,不会影响代码行中间附带的//注释。
步骤2:删除多行注释并保留换行
- 匹配正则:
/\*.*?\*/ - 替换逻辑:将匹配到的注释内容,替换为该内容内部包含的所有换行符
\n,即可保留原代码的换行结构,仅移除注释文本。如果不需要严格对应原有换行数量,也可以直接替换为空字符串,你给出的示例场景下输出结果一致。
注意事项
上述规则仅适配无字符串嵌套注释符号的场景,如果需要处理代码字符串中包含/*、//等注释标识的情况,正则无法完全覆盖所有边界,需要配合语法状态机处理。
内容的提问来源于stack exchange,提问作者epm
相关产品推荐
相关产品推荐

