You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python正则移除Java代码指定内容时出现运行异常

修复后的Java代码清理脚本

原脚本的问题点

  • 缩进错误:with代码块内的语句未缩进,引发语法错误
  • 正则表达式逻辑错误:
    • 单行注释匹配:原//.?仅能匹配//后单个字符,无法覆盖整行注释
    • 多行注释匹配:原/*.?*/未转义正则元字符*和/,且未使用非贪婪匹配,会错误匹配跨多个注释的内容
    • package语句匹配:正则完全偏离目标,错误引入\*/,未匹配完整的package行
    • import语句匹配:原import.?仅匹配import后单个字符,无法覆盖整行import语句
  • 变量引用错误:处理package时误用原始文件内容变量,导致之前的注释清理结果被丢弃

修复后的代码

import re

# 读取文件内容
with open('H:\\APK_Source_Code_Merged\\abc.txt', 'r', encoding='utf-8', errors='ignore') as fil:
    file_content = fil.read()

# 移除单行注释:// 到行尾的内容
no_single_comment = re.sub(r"//[^\n]*", '', file_content)

# 移除多行注释:/* 到 */ 的内容,非贪婪匹配避免过度匹配
no_multi_comment = re.sub(r"/\*.*?\*/", '', no_single_comment, flags=re.DOTALL)

# 移除package行:匹配以package开头的整行(含缩进)
no_package = re.sub(r"^\s*package.*?\n", '', no_multi_comment, flags=re.MULTILINE)

# 移除import行:匹配以import开头的整行(含缩进)
final_content = re.sub(r"^\s*import.*?\n", '', no_package, flags=re.MULTILINE)

print(final_content)

关键修复说明

  • 修正缩进:确保with块内的语句正确缩进
  • 单行注释正则://[^\n]*匹配//后所有非换行字符,精准覆盖单行注释
  • 多行注释正则:/\*.*?\*/转义元字符,并用re.DOTALL让.匹配换行,.*?非贪婪匹配避免从第一个/*匹配到最后一个*/
  • package/import正则:使用^\s*匹配行首的缩进,.*?\n匹配整行内容,re.MULTILINE让^匹配每一行的开头
  • 变量传递:确保每一步处理都基于上一步的结果,避免覆盖

内容的提问来源于stack exchange,提问作者ya xi er

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 10:05:29