我需要的一个规则是,如果字符串的最后一个元音(aeiou)位于集合中的字符之前('t','k','s',' tk'),那么需要在元音后面加上:
。需要正则表达式搜索/替换帮助,Python
所以,在Python如果我有串"orchestras"
我需要一个规则,把它变成"orchestra:s"
编辑:在的(T,K,S,TK)将是最后一个字符(S)字符串
我需要的一个规则是,如果字符串的最后一个元音(aeiou)位于集合中的字符之前('t','k','s',' tk'),那么需要在元音后面加上:
。需要正则表达式搜索/替换帮助,Python
所以,在Python如果我有串"orchestras"
我需要一个规则,把它变成"orchestra:s"
编辑:在的(T,K,S,TK)将是最后一个字符(S)字符串
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结尾,那么使用第二个正则表达式,这对于“拳头”不会做任何事情。
如果你还没有弄明白,我建议尝试[python_root] /tools/scripts/redemo.py这是一个不错的测试区域。
另取对更换正则表达式:
re.sub("(?<=[aeiou])(?=(?:t|k|s|tk)$)", ":", "orchestras")
这其中并不需要使用记忆组来代替。
虽然我没有答案,但我很好奇这个实际应用。 – StrixVaria 2009-12-07 20:48:36
'tk'是一个字符? – 2009-12-08 05:42:11