使用正则表达式从给定单词中提取文本直至段落结尾

时间:2019-04-01 15:46:19

标签: regex python-3.x

我正在学习使用正则表达式,这里的任务是: 文字是两个人之间的聊天

” 安东:我需要工作人员.... ........................... ...........现在

Antor:好的。 “

我需要找到单词“ need”(和“ needed”或“ needing”)之后的第一个文本,直到该段落的末尾。

我的代码没有给出“:”

with open('pars_text2.txt', 'r') as pars_text2:
    conversation = pars_text2.read()
pattern=r'^(all.need[,\s]*)'
second=re.match(pattern, conversation)
print(second)

它应该给出字符串“ need staff...。 ........................... ....................现在”。

1 个答案:

答案 0 :(得分:2)

如果在本段末尾您是指空行,则可能是一个捕获组:

^.*?(\b(?:need(?:ed|ing)?)\b.*(?:(?!\n[ \t]*$)\n.*)*)

说明

  • ^字符串的开头
  • .*?匹配除换行符非贪婪以外的所有字符
  • (捕获组(其中将包含您的值)
    • \b(?:need(?:ed|ing)?)\b匹配需要,需要或需要
    • .*匹配除换行符以外的所有字符
    • (?:(?!\n[ \t]*$)\n.*)*重复0+次以匹配整行,同时使用负前瞻断言紧随其后的不是空行
  • )关闭捕获组

Regex demo | Python demo