提取包含特定单词的两个点之间的文本

问题描述 投票:0回答:2

我正在尝试提取两个点之间的句子。所有句子中都有 inflam 或 Inflam,这是我的特定词,但我不知道如何实现这一点。

我想要的是“。下面的纤维结缔组织的大部分由慢性炎症细胞的弥散聚集体组成。” 或者 “纤维结缔组织揭示了分散的血管结构和可能的慢性炎症。” 来自一个很长的段落

到目前为止我尝试过的是这个

      #@title Extract microscopic-inflammation { form-width: "20%" }

def inflammation1(microscopic_description):
  
  PATTERNS=[
      
      
    "(?=\.)(.*)(?<=inflamm)",
    "(?=inflamm)(.*)(?<=.)",
       
  
  ]
  
  for pattern in PATTERNS:
        matches = re.findall(pattern, microscopic_description)
        if len(matches) > 0:
            break

  inflammation1 = ''.join([k for k in matches])
  
  return (inflammation1)
         
for index, microscopic_description in enumerate(texts):
    print(inflammation1(microscopic_description)) 
    print("#"*79, index)

这对我不起作用并且给了我错误。当我分离我的模式并在不同的单元格中运行它们时,它们就会起作用。问题是他们不能一起给我“.”之间的句子。和 ”。”发炎前和发炎后。

python regex extract
2个回答
0
投票
import re

string=''  # replace with your paragraph 

print(re.search(r"\.[\s\w]*\.",string).group()) #will print first matched string
print(re.findall(r"\.[\s\w]*\.",string)) #will print all matched strings

-1
投票

您可以尝试检查文本每个句子中的单词。

for sentence in text.split("."):
    if word in sentence:
        print(sentence[1:])

在这里,您正是这样做的,如果找到该单词,您将打印该句子,并且开头不带空格。您可以以任何您想要的方式修改它。

© www.soinside.com 2019 - 2024. All rights reserved.