V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Takizawa
V2EX  ›  问与答

请问各位大佬,咨询一下如何根据要处理的中英文混合语句 构建正则表达式规则的问题

  •  
  •   Takizawa · 265 天前 · 365 次点击
    这是一个创建于 265 天前的主题,其中的信息可能已经有所发展或是发生改变。
    op 由于工作需要,要处理本科毕业生的毕业论文上报 jyb 抽检。需要将学生的论文 pdf 文档中的摘要里面的关键词提取出来,再填充到 excel 表格里面。学生的关键词情况示例如下:

    关键词:Python 多线程 目标检测 Python Flask 框架

    其中,
    ( 1 )关键词后面的冒号,有的学生没有,有的学生有
    ( 2 )关键词最多 6 个,有的学生可能只有 3 个
    ( 3 )关键词之间有 1-4 个空格
    ( 4 )关键词的最后结束应该是换行符\n ,这个不确定,我查了资料应该是换行符。

    请问规则该怎么写呢?
    2 条回复    2023-09-12 16:57:04 +08:00
    James2099
        1
    James2099  
       265 天前
    import re

    text = "关键词:Python 多线程 目标检测 Python Flask 框架"


    pattern = r'关键词[::]?\s*([^:\n]+)(?:[::]\s*([^:\n]+))?(?:[::]\s*([^:\n]+))?(?:[::]\s*([^:\n]+))?(?:[::]\s*([^:\n]+))?(?:[::]\s*([^:\n]+))?\s*\n'


    matches = re.search(pattern, text)

    if matches:
    # 提取关键词
    keywords = [match.strip() for match in matches.groups() if match]
    print(keywords)
    else:
    print("未匹配到关键词")
    Takizawa
        2
    Takizawa  
    OP
       265 天前
    @James2099 谢谢大佬。其实还有个关键问题就是,我是需要一个一个打开本地目录的 pdf 文件,再从里面拿到“关键词:Python 多线程 目标检测 Python Flask 框架”这句话,然后再做提取分割的。请问怎么自动拿到这句话啊?也就是怎么生成最开始 text 这个变量?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5256 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 09:13 · PVG 17:13 · LAX 02:13 · JFK 05:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.