如何在Groovy中移除回车符(Control-M)
使用Groovy移除文件中的Control-M字符
Control-M对应ASCII码0x0D的回车符(转义字符为\r),可以通过Groovy的replaceAll方法结合正则表达式移除,以下是具体实现:
1. 处理单个字符串
如果是处理内存中的字符串内容,直接调用replaceAll匹配\r并替换为空:
def originalStr = "some content\r" def cleanedStr = originalStr.replaceAll(/\r/, '') // 若仅需移除每行末尾的Control-M,用行尾锚点$更精准: // def cleanedStr = originalStr.replaceAll(/\r$/, '')
2. 处理CSV文件(读取-清理-写入)
直接操作文件的完整示例:
// 目标CSV文件路径 def csvFile = new File('path/to/your/file.csv') // 读取文件全部内容 def rawContent = csvFile.text // 移除所有Control-M字符 def cleanedContent = rawContent.replaceAll(/\r/, '') // 将清理后的内容写回文件(覆盖原文件) csvFile.write(cleanedContent)
说明
replaceAll(/\r/, '')会移除文本中所有的Control-M字符,适合全局清理场景;- 若仅需要移除每行末尾的Control-M,改用
replaceAll(/\r$/, ''),其中$是正则表达式的行尾匹配锚点,避免误删中间出现的回车符; - Groovy的
File.text会自动处理文件编码,若需指定编码,可在text和write方法中添加参数,例如csvFile.getText('UTF-8')、csvFile.write(cleanedContent, 'UTF-8')。
内容的提问来源于stack exchange,提问作者AnirD
相关产品推荐
相关产品推荐

