如何使用正则表达式将带有ei或ie的单词分隔开?
import re
value = ("How can one receive one who over achieves while believing that he/she cannot be deceived.")
list = re.findall("[ei,ie]\w+", value)
print(list)
它应该打印['receive', 'achieves', 'believing', 'deceived']
,但我却得到['eceive', 'er', 'ieves', 'ile', 'elieving', 'eceived']
。
答案 0 :(得分:1)
设置的语法[]
是针对单个字符的,因此请改用(?:)
,并用|
分隔单词。这就像使用组一样,但是并没有像()
那样捕获匹配组。您还希望捕获任一侧的\w
以获取整个单词。
import re
value = ("How can one receive one who over achieves while believing that he/she cannot be deceived.")
list = re.findall("(\w*(?:ei|ie)\w*)", value)
print(list)
['receive', 'achieves', 'believing', 'deceived']
(我假设您的意思是“实现”,而不是“实现”,因为这是实际出现的词。)