我正在尝试编写Python正则表达式以捕获语料库中出现的“群岛”的各种形式。
这是一个测试字符串:
这是我的关于岛屿、群岛和群岛空间的句子。我想确保不会忘记群岛的猫。我们不能忘记元-群岛和原始群岛历史学家,他们倾向于拼写复数形式为“archipelagoes”。
我想从字符串中捕获以下内容:
这是一个测试字符串:
这是我的关于岛屿、群岛和群岛空间的句子。我想确保不会忘记群岛的猫。我们不能忘记元-群岛和原始群岛历史学家,他们倾向于拼写复数形式为“archipelagoes”。
我想从字符串中捕获以下内容:
archipelagos
archipelagic
archipelago's
meta-archipelagic
protoarchipelagic
archipelagoes
尝试1
使用正则表达式(archipelag.*?)\b
并在Pythex测试后,我捕获了所有六种形式的一部分。但存在以下问题:
archipelago's
只被捕获为archipelago
。我想要得到所有格。meta-archipelagic
只被捕获为archipelagic
。我想要能够捕获带有连字符的前缀。protoarchipelagic
只被捕获为archipelagic
。我想要能够捕获非连字符的前缀。
尝试2
如果我尝试使用正则表达式(archipelag.*?)\s
(参见Pythex),所有格archipelago's
现在被捕获了,但是紧随第一个实例的逗号也被捕获了(例如,archipelagos,
)。它完全没有捕获最后的'archipelagoes.'
。
([a-zA-Z-]*?archipel[a-zA-Z']*)
。 - Brian Croxall([a-zA-Z-]*?archipel[a-zA-Z']*)
将是一个更好的答案。 - alessandrocb