使用正则表达式从单元格中搜索多个关键字

2024-06-25 23:39:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我必须写一个代码来搜索正则表达式从一个excel表,其中有句子分组在一起。我设法找到了代表每个句子的关键词。当我运行下面提到的代码时,它只从一个单元格中找到一个关键字并移动到下一个单元格。我试着在表格中显示要求

enter image description here

\bphrase\W+(?:\w+\W+){0,6}?one\b|\bphrase\W+(?:\w+\W+){0,6}?two\b|\bphrase\W+(?:\w+\W+){0,6}?three\b|\bphrase\W+(?:\w+\W+){0,6}?four\b|

Tags: 代码代表关键字excelone关键词句子表格
1条回答
网友
1楼 · 发布于 2024-06-25 23:39:52

正则表达式:

\b(phrase)\b\W+(?:\w+\W+){0,6}?\b(one|two|three|four)\b
  1. \b(phrase)\b匹配单词边界上的phrase
  2. W+:匹配一个或多个非单词字符(通常是空格)
  3. (?:\w+\W+){0,6}?匹配0到6次,尽可能少的匹配一个或多个单词字符,后跟一个或多个非单词字符
  4. \b(one|two|three|four)\b匹配单词边界上的onetwothreefour

代码:

import re

text = "This sentence has phrase one and phrase word word two and phrase word three and phrase four phrase too many words too many words too many words four again."

l = [m[1] + ' ' + m[2] for m in re.finditer(r'\b(phrase)\b\W+(?:\w+\W+){0,6}?\b(one|two|three|four)\b', text)]
print(l)

印刷品:

['phrase one', 'phrase two', 'phrase three', 'phrase four']

相关问题 更多 >