我需要的一個規則是,如果字符串的最後一個元音(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