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


独立思考最难得,赞赏支持是美德!(微信扫描下图)