[英]Regular Expression search/replace help needed, Python
我需要的一個規則是,如果字符串的最后一個元音(aeiou)在集合中的字符('t','k','s','tk')之前,則需要添加:
元音之后。
因此,在Python中,如果我有字符串"orchestras"
我需要一條規則將其轉換為"orchestra:s"
編輯:(t,k,s,tk)將是字符串中的最后一個字符
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之后是否還有其他輔音。 只要沒有更多的元音,第一個正則表達式就允許這樣做,例如,它將“ fist”更改為“ fi:st”。 如果單詞必須以t / k / s / tk結尾,則使用第二個正則表達式,這對“拳頭”無效。
如果您還沒有弄清楚,建議您嘗試[python_root] /tools/scripts/redemo.py。這是一個不錯的測試領域。
對替換正則表達式的另一種看法:
re.sub("(?<=[aeiou])(?=(?:t|k|s|tk)$)", ":", "orchestras")
無需使用記住的組來替換該組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.