You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

如何在C#中提取指定文本间的ID并写入txt文件?

没问题,我来帮你搞定这个ID提取的需求!这里有几种不同的方法,你可以根据自己的使用习惯选择:

方法1:Python脚本(跨平台通用)

这个方式灵活度高,不管是Windows、Mac还是Linux系统都能运行。你只需要新建一个名为extract_ids.py的文件,把下面的代码复制进去:

import re

# 打开输入文件和输出文件,指定编码避免乱码
with open('input.txt', 'r', encoding='utf-8') as infile, open('output.txt', 'w', encoding='utf-8') as outfile:
    # 正则表达式:匹配"id="之后、"amp"之前的内容,非贪婪模式避免匹配过多
    id_pattern = re.compile(r'id=(.*?)amp')
    # 逐行读取输入文件内容
    for line in infile:
        # 提取当前行所有符合规则的ID
        matched_ids = id_pattern.findall(line)
        # 把每个ID单独写入输出文件,每行一个
        for id_str in matched_ids:
            outfile.write(f"{id_str}\n")

保存后,在终端里运行python extract_ids.py,就能在当前目录得到output.txt文件了。

方法2:命令行工具(Linux/Mac/WSL/Git Bash)

如果平时习惯用终端操作,一行命令就能直接完成提取:

# 用grep的Perl正则模式直接提取中间内容
grep -Po '(?<=id=).*?(?=amp)' input.txt > output.txt

解释一下:-P启用Perl兼容正则,-o只输出匹配的部分;(?<=id=)是反向预查(确保前面是id=),(?=amp)是正向预查(确保后面是amp),这样就能精准提取中间的ID,直接写入output.txt

如果你的系统不支持-P参数,也可以用grep+sed组合:

grep -o 'id=.*amp' input.txt | sed 's/id=//;s/amp//' > output.txt
方法3:Notepad++图形界面操作(Windows用户友好)

要是你不想碰代码和命令行,用Notepad++也能轻松完成:

  1. 打开input.txt文件
  2. 按下Ctrl+H打开替换窗口
  3. 切换到「正则表达式」模式,勾选「匹配换行符」选项
  4. 在「查找目标」输入框中填入:.*?id=(.*?)amp.*?
  5. 在「替换为」输入框中填入:$1\n
  6. 点击「全部替换」,然后把修改后的内容另存为output.txt就行

这个操作会把所有包含id=...amp的片段替换成对应的ID,并且每个ID单独占一行。

内容的提问来源于stack exchange,提问作者Brúnó Szubally

火山引擎 最新活动