簡體   English   中英

如何使用正則表達式解析句子

[英]How do I parse a sentence using regex

我需要解析一個句子:“愛麗絲是男孩。” 分為['Alice','boy']和“大象是哺乳動物”。 變成['大象','哺乳動物']。 這意味着我需要將字符串用'is'分割,同時還要刪除'a / an'。 有一種優雅的方法嗎?

這個答案不是讓我們使用正則表達式,而是做事的一種方式:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM