You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Regex提取含相同senID且结尾为波斯问号的多行内容?

提取符合条件的语料段落方法

可以用以下两种常用方法实现你的需求:

使用awk命令行工具

awk是处理文本的高效工具,适合快速批量处理语料。编写如下脚本(保存为filter.awk):

BEGIN { RS = "" }
/؟ senID=/ { print }

用法

将你的语料保存为corpus.txt,在终端执行命令:

awk -f filter.awk corpus.txt

原理:通过RS = ""设置空行为段落分隔符,让awk把每个senID对应的内容当作单个记录;匹配包含؟ senID=的记录(即最后一行带波斯问号的段落)并输出。

使用Python脚本

如果需要更定制化的处理逻辑,用Python脚本实现:

def extract_target_segments(file_path):
    with open(file_path, 'r', encoding='utf-8') as f:
        content = f.read()
    # 按空行分割成独立的senID段落
    segments = content.split('\n\n')
    target_segments = []
    for seg in segments:
        seg_lines = seg.strip().split('\n')
        # 检查段落最后一行是否以波斯问号结尾
        if seg_lines and seg_lines[-1].strip().endswith('؟'):
            target_segments.append(seg)
    return '\n\n'.join(target_segments)

# 执行并输出结果
if __name__ == "__main__":
    result = extract_target_segments('corpus.txt')
    print(result)

用法

把语料保存为corpus.txt,运行脚本即可得到所有符合条件的段落。

内容的提问来源于stack exchange,提问作者Saeid01

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 09:35:16