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

时间:2009-12-07 20:47:07

标签: python regex

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

所以,在Python中,如果我有字符串:,我需要一个将其转换为"orchestras"的规则

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

3 个答案:

答案 0 :(得分:6)

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之后是否还有其他辅音。只要没有更多的元音,第一个正则表达式就允许这样做,所以它会将“拳头”改为“fi:st”。如果单词必须以t / k / s / tk结尾,则使用第二个正则表达式,这对“拳头”无效。

答案 1 :(得分:0)

如果你还没弄明白,我建议你尝试 [python_root] /tools/scripts/redemo.py 这是一个不错的测试区域。

答案 2 :(得分:0)

替换正则表达式的另一种看法:

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

这个不需要使用记忆组替换。