需要正则表达式搜索/替换帮助,Python

2024-09-28 20:57:11 发布

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

我需要的一个规则是,如果字符串的最后一个元音(aeiou)位于集合中的字符('t','k','s','tk')之前,那么需要在元音之后添加一个:。在

因此,在Python中,如果我有字符串"orchestras",我需要一个规则,将其转换为"orchestra:s"

edit:(t,k,s,tk)将是字符串中的最后一个字符


Tags: 字符串规则字符edittk元音orchestraaeiou
3条回答

如果您还没有找到答案,我建议您尝试[python_root]/tools/scripts/redemo.py这是一个不错的测试区。在

re.sub(r"([aeiou])(t|k|s|tk)([^aeiou]*)$", r"\1:\2\3", "orchestras")
re.sub(r"([aeiou])(t|k|s|tk)$",            r"\1:\2",   "orchestras")

你不会说t/k/s/tk后面是否还有其他辅音。第一个regex允许这样做,只要不再有元音,所以它会将“fist”更改为“fi:st”。如果单词必须以t/k/s/tk结尾,那么使用第二个regex,它对“fist”没有任何作用。在

另一个替代正则表达式:

re.sub("(?<=[aeiou])(?=(?:t|k|s|tk)$)", ":", "orchestras")

这个不需要用记忆组来代替。在

相关问题 更多 >