如何使用正则表达式移除文本中的完整文件路径?
移除文本中的Windows文件路径(用于LDA数据清理)
针对你清理LDA训练文本中Windows文件路径的需求,这里提供精准的正则方案:
正则表达式
[A-Za-z]:\\(?:[^\\/:*?"<>|\r\n]+\\)*[^\\/:*?"<>|\r\n]+
正则说明
[A-Za-z]:\\:匹配Windows盘符(如C:\、D:\),反斜杠在正则中需转义为\\(?:[^\\/:*?"<>|\r\n]+\\)*:非捕获组,匹配任意层级的目录结构,目录名排除Windows路径非法字符(\ / : * ? " < > |及换行)[^\\/:*?"<>|\r\n]+:匹配最终的文件名,同样排除非法字符
代码示例(Python)
import re # 原始文本 raw_text = "这是一段包含文件路径的示例文本:C:\\Users\\Username\\Documents\\file.txt。这是另一个路径:D:\\Data\\folder\\file.docx 。" # 正则模式 path_pattern = r'[A-Za-z]:\\(?:[^\\/:*?"<>|\r\n]+\\)*[^\\/:*?"<>|\r\n]+' # 替换路径为空字符串 cleaned_text = re.sub(path_pattern, '', raw_text) print(cleaned_text)
运行后输出:
这是一段包含文件路径的示例文本:。这是另一个路径:。
注意事项
- 该正则针对绝对路径设计,若你的文本包含相对路径(如
.\docs\file.pdf),可调整正则为(?:[A-Za-z]:\\|\.\\|\.\.\\)(?:[^\\/:*?"<>|\r\n]+\\)*[^\\/:*?"<>|\r\n]+ - 建议用你的实际样本测试,确保不会误删正常文本内容
内容的提问来源于stack exchange,提问作者hanilosaurus
相关产品推荐
相关产品推荐

