【发布时间】:2016-01-07 06:33:46
【问题描述】:
我已经制定了一些我需要在文件中搜索的规则。这些规则本质上是包含未知数量单词的短语。例如,
mutant...causes(...)GS
这是一个短语,我想在我的文件中搜索。 ... 表示这里应该有几个词(即在这个间隙中)和(...) 表示这个间隙中可能有/可能没有词。 GS 这是我知道的固定字符串变量。
基本上,我通过查看许多此类文件来制定这些规则,它们告诉我特定文件可以满足我的要求。
问题是间隙可以包含任何(少量)单词。甚至可以有一条新线从其中一个间隙开始。因此,我不能进行相同的字符串匹配。
一些示例文本 -
!Series_summary "To better understand how the expression of a *mutant gene that causes ALS* can perturb the normal phenotype of astrocytes, and to identify genes that may
这里的 GS 是 ALS(已定义),加星标的文本应与规则 mutant...causes(...)GS 匹配
!Series_overall_design "The analysis includes 9 samples of genomic DNA from isolated splenic CD11c+ dendritic cells (>95% pure) per group. The two groups are neonates born to mothers with *induced allergy to ovalbumin*, and normal control neonates. All neonates are genetically and environmentally identical, and allergen-naive."
这里的 GS 是卵清蛋白(已定义),加星标的文本应该是规则的正匹配
induced...to GS
我是python编程的初学者,所以任何帮助都会很棒!
【问题讨论】:
-
...(间隙)实际上是 3 个点 或者有一些 字母/单词。在这里。 -
@iNikkz 不是 3 个点。那里可以有任意数量的单词
-
最好发布一个示例文本,以展示我们建议的解决方案的工作原理。目前只能建议
r"(?s)\bmutant\b\W+\w+.*?\bcauses\b.*?\bGS\b" -
@stribizhev 我已按照您的要求添加了示例。请看一看!
-
@stribizhev 还有,这里的'GS'是不匹配的,它是一个变量
标签: python regex search nlp match-phrase