gpt4 book ai didi

python - 正则表达式匹配第一个和最后一个单词或任何单词

转载 作者:太空宇宙 更新时间:2023-11-03 15:16:19 26 4
gpt4 key购买 nike

我有一个巨大的文件,其中包含如下数据列表:

 #fabulous       7.526   2301    2
#excellent 7.247 2612 3
#superb 7.199 1660 2
#perfection 7.099 3004 4
#terrific 6.922 629 1

我有一个包含如下句子列表的文件:

Terrific Theo Walcott is still shit, watch Rafa and Johnny deal with him on Saturday.
its not that I'm a GSP fan, fabulous
Iranian general says Israel's Iron Dome can't deal with their missiles
with J Davlar 11th. Main rivals are team Poland.

我想用正则表达式检查以下内容:

  1. 如果每个句子中的第一个单词与文件中的任何单词匹配例如,如果 Terrific、its、Iranian、with 是否出现在文件中

  2. 如果句子中的最后一个词匹配文件中的任何词例如,文件中是否出现 saturday, fabulous, missiles , Poland

  3. 如果句子中单个单词的 2 或 3 个字符前缀和后缀匹配文件中的 2 或 3 个字符前缀和后缀例如,Ter、its、Ira、wi 是否匹配文件中任何 2 或 3 个单词前缀。同样适用于后缀。

我对正则表达式很陌生,我可以这样想,但没有得到结果:term2.lower() 是文件中的第一列

    wordanalysis["trail"] = found if re.match(sentence[-1],term2.lower()) else not(found)
wordanalysis["lead"] = found if re.match(sentence[0],term2.lower()) else not(found)

最佳答案

更新:根据@justhalf 的精彩建议,无需使用正则表达式来拆分单词。如果您想要区分大小写的匹配项,请删除 .lower()

这将匹配数据列表中的第一个词和最后一个词(不包括任何标点符号或尾随空格):

(^\s?\w+\b|(\b\w+)[\.?!\s]*$)

匹配:

MATCH 1-1. Terrific
MATCH 2-1. Saturday.
2. Saturday
MATCH 3-1. its
MATCH 4-1. fabulous
2. fabulous
MATCH 5-1. Iranian
MATCH 6-1. missiles
2. missiles
MATCH 7-1. with
MATCH 8-1. Poland.
2. Poland

实现:

import re, string

sentences = open("sentences.txt").read().splitlines()
data = open("data.txt").read()
pattern = re.compile(r"(^\s?\w+\b|(\b\w+)[\.?!\s]*$)")
for line in sentences:
words = line.strip().split()
first = words[0].lower()
last = words[-1].translate(None, string.punctuation).lower()
if (re.search(first, data, re.I)):
print "Found " + first + " in data.txt"
if (re.search(last, data, re.I)):
print "Found " + last + " in data.txt"

这可能不是最优雅的实现方式,但您明白了。

代码已经过测试并且可以工作,输出是:

Found Terrific in data.txt
Found fabulous in data.txt

另外这并没有达到您的第三个标准,请测试一下,看看到目前为止它是否对您有效。

关于python - 正则表达式匹配第一个和最后一个单词或任何单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20556934/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com