gpt4 book ai didi

python - 如何使用正则表达式获取在字符串中重复多次的模式

转载 作者:行者123 更新时间:2023-12-01 07:12:07 26 4
gpt4 key购买 nike

我对正则表达式还很陌生,就像 Python 库 re 中的那样。

我想提取所有由空格分隔的专有名词作为一个完整的单词。

我试过了

result = re.findall(r'(\w+)\w*/NNP (\w+)\w*/NNP', tagged_sent_str)

输入:我有一个类似

的字符串
tagged_sent_str = "European/NNP Community/NNP French/JJ European/NNP export/VB" 

预期输出:

[('European Community'), ('European')]

当前输出:

[('European','Community')]

但这只会给出对,而不是单个。各种我都要

最佳答案

IIUC,itertools.groupby更适合这种工作:

from itertools import groupby

def join_token(string_, type_ = 'NNP'):
res = []
for k, g in groupby([i.split('/') for i in string_.split()], key=lambda x:x[1]):
if k == type_:
res.append(' '.join(i[0] for i in g))
return res

join_token(tagged_sent_str)

输出:

['European Community', 'European']

如果您期望三个或更多连续类型,则不需要修改:

str2 = "European/NNP Community/NNP Union/NNP French/JJ European/NNP export/VB" 

join_token(str2)

输出:

['European Community Union', 'European']

关于python - 如何使用正则表达式获取在字符串中重复多次的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58152101/

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