gpt4 book ai didi

python - 如何将特定单词封装在括号中?

转载 作者:太空宇宙 更新时间:2023-11-04 05:32:48 25 4
gpt4 key购买 nike

我是 Python 的新手,这是我的问题。我有一组词:

entities = ['blab', 'r1', 'zss']

我想检测它们并且我想封装它们以防万一

例如:

这个r1是关于zsse的 --> 这个[r1]是关于[zsse]的

同样,如果已经封装,我不会改变任何东西,例如,[ blablab r1 blabala ] 仍然是一样的。

我已经尝试了一些但它不起作用:

for s in sentences:
for e in entities:
if re.search(r"\[\[%s\]\]" % e, s):
pass
else:
s=s.replace(e,'[['+e+']]')

New_sentences.append(s)

最佳答案

我就是这样做的。请注意,我使用了两个不同的正则表达式:

  • (\[.*?]) 识别括号内的区域
  • '({})'.format('|'.join(entities)) 匹配非括号区域内的任何实体。
import re

brackets = re.compile(r'(\[.*?])')
def rewrite(sentence, entities):
sentence = brackets.split(sentence)
entities = re.compile('({})'.format('|'.join(entities)))
for i, phrase in enumerate(sentence):
if not phrase.startswith('['):
sentence[i] = entities.sub(r'[\1]', phrase)
sentence = ''.join(sentence)
return sentence

print rewrite('this r1 is about zsse', ['blab', 'r1', 'zss'])
print rewrite('[ blablab r1 blabala ]', ['blab', 'r1', 'zss'])

结果:

$ python x.py 
this [r1] is about [zss]e
[ blablab r1 blabala ]

关于python - 如何将特定单词封装在括号中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36580237/

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