簡體   English   中英

正則表達式搜索/替換需要幫助,Python

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM