內更換具體的數字我需要更換一個較長的字符串中出現的所有類似於此數字(角落):正則表達式/ Python的查找和字符串
[ 17 plane_17 \ 23 25 17 99 150 248 \ noname ]
我的函數有一個「老」號被替換爲「新」號碼,例如如果舊的號碼是17,新的是19,那麼結果應該是:
[ 17 plane_17 \ 23 25 19 99 150 248 \ noname ]
注意,僅在\數字\應更換(這也可能是/ /)。
要做到這一點,我試圖建立一個正則表達式替換以避免\以外的號碼\的意圖或/ /: newplane = re.compile(r"[^[_] (" + str(oldcorner) + ")").sub(str(newcorner), oldplane)
我很快意識到,這並不因爲從一開始的正則表達式搜索工作如果它與模式不匹配,則會失敗。
必須有一些聰明的做法仍然是我不知道的..任何建議?
才具之間 '\\',或單一的 '\'?我的第一本能是將它拆分爲'\'(或double),在結果的每一個第二個元素上調用普通的舊替換(舊的,新的),然後在'\'處將它們連接在一起。雖然不是非常pythonic,但有興趣看看是否有人有一個整潔的方式 – 2013-03-11 14:20:02
他們都將在單個'\'或單個'/'內。這不是一個壞主意!將刪除正則表達式.... – jodles 2013-03-11 14:23:55
是啊會保持簡單,不知道你將如何處理'\'和'/'在同一行 – 2013-03-11 14:25:18