使用正则表达式将带有ei或ie的单词隔离开

时间:2019-02-10 04:07:07

标签: python-3.x

如何使用正则表达式将带有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']

1 个答案:

答案 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']

(我假设您的意思是“实现”,而不是“实现”,因为这是实际出现的词。)