如何使用正则表达式解析句子

2024-06-09 06:32:06 发布

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

我需要分析一个句子,比如: “爱丽丝是个男孩”变成“爱丽丝”,“男孩” 把“大象是哺乳动物”改为“大象”、“哺乳动物”。这意味着我需要将字符串拆分为“is”,同时删除“a/an”。 有什么优雅的方法吗?你知道吗


Tags: 方法字符串anis句子男孩哺乳动物大象
2条回答

这个答案并不能让我们理解regex,而是一种做事的方式:

s = 'Alice is a boy'
s = s.split() # each word becomes an entry in a list
s = [word for word in s if word != 'a' and word !='an' and word !='is']

这样做的主要缺点是,您需要列出列表中要排除的每个单词。你知道吗

如果坚持使用正则表达式,可以使用re.search这样做:

print(re.search('(\w+) is [a|an]? (\w+)',"Alice is a boy.").groups())
# output: ('Alice', 'boy')

print(re.search('(\w+) is [a|an]? (\w+)',"An elephant is a mammal.").groups())
# output: ('elephant', 'mammal')
# apply list() if you want it as a list

相关问题 更多 >