繁体   English   中英

如何在 python 中使用正则表达式提取这句话?

[英]How to extract this sentence using regex in python?

我正在尝试从研究文章中提取引用的句子。 我已经设法提取除一个之外的所有句子。

“相关性(对于正在经历学习过程的个人)在 Hidi 和 Renninger 的 model (2006) 中作为触发器出现,并且可以是 Priniski 等人的连续体中的任何相关类型。”

(r'\w.+\(\d{4}\)+\.*', regex = True)是我使用的模式。 我想知道是否要处理括号内的单词。

文章中的示例段落:

n \n\n关于成人教育的工作相关性:案例研究叙述 \n\nTone Vold1,2、Hanne Haave2 和 Aristidis Kaloudis1 \n1NTNU,挪威 \n2INN,挪威 \nTone.vold@ntnu.no \nTone.vold@inn .no \nHanne.haave@inn.no \nAristidis.kaloudis@ntnu.no \nDOI: 10.34190/EJKM.18.02.002 \n \n摘要:人们越来越关注高等教育的相关性。 主要是关于增加个人的工作机会或工作\进步。 然而,高等教育的相关性也可能与解决工作场所的重要问题或问题有关。 关于教育活动如何变得相关,有一些必要的先决条件。 \n首先,学生必须能够发现通用知识和获得的技能如何适用于工作中的具体\n情况。 这需要经验、对组织规范和文化的理解以及一定形式的实践智慧。

我已经拆分并标记了句子,然后将其转换为 dataframe,我尝试使用以下代码匹配并提取带有引用的整个句子

print (df[df['sentences'].str.contains((r'\w.+(\d{4})+.*', regex = True)]) 是我用来提取所有行的代码/引用 dataframe (df) 的句子

我设法编写了与 dataframe 行中的整个句子匹配的不同正则表达式模式。 与我的问题句子匹配的正则表达式模式将帮助我。

您的正则表达式将在括号内有 4 位数字的任何序列之后停止,在本例中为“(2006)”,重复 1 次或更多次,然后可能的句点 0 次或更多次。

因此,您需要一个模式来获取括号后字符的 rest,然后是结束句子的句点的模式,而不是捕获例如“。” 在“等人的”中。

我推荐https://regex101.com/来测试正则表达式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM