Nim 递归搜索目录,用正则表达式替换指定后缀的文件内容
用 Nim 编程语言 2.0 以上版本递归搜索指定目录下的 .md 文件,用正则表达式替换内容里的特定部分
用字符串替换函数,把:
<!--li-->
text
text
<!--il-->
替换为:
<!--li-->
<!--il-->
递归搜索指定目录下的 .md 文件,调用字符串替换函数执行替换
Nim 代码
# 海云青飞 https://www.tuenhai.com
# 2024-09-02
import os, re, strutils
proc replaceContentBetweenTags(input: string): string =
let pattern = "<!--li-->.*?<!--il-->"
let regex = re(pattern, {reDotAll})
let replacement = "<!--li-->\n<!--il-->"
return input.replace(regex, replacement)
proc replaceInFile(filePath: string) =
var content = readFile(filePath)
let originalContent = content
content = replaceContentBetweenTags(content)
writeFile(filePath, content)
proc processDirectory(dirPath: string) =
for file in walkDirRec(dirPath):
if file.endsWith(".md"):
replaceInFile(file)
# 使用示例
let dirPath = r"C:\Users\tuenhai.com\src"
processDirectory(dirPath)
2024-09-02
独立思考最难得,赞赏支持是美德!(微信扫描下图)