### 使用字符串方式
有時使用 re 模塊是個錯誤。如果你匹配一個固定的字符串或單個的字符類,并且你沒有使用 re 的任何象 IGNORECASE 標志的功能,那么就沒有必要使用正則表達式了。字符串有一些方法是對固定字符串進行操作的,它們通常快很多,因為它們都是一個個經過優化的 C 小循環,用以代替大的、更具通用性的正則表達式引擎。
舉個 用一個固定字符串替換另一個 的例子,如:你可以把 "deed" 替換成 "word"。re.sub() 似乎正是勝任這個工作的函數,但還是考慮考慮 replace() 方法吧。注意 replace() 也可以在單詞里面進行替換,可以把 "swordfish" 變成 "sdeedfish"。不過 RE 也是可以做到的。(為了避免替換單詞的一部分,模式將寫成 \bword\b,這是為了要求 "word" 兩邊有一個單詞邊界。這是個超出 replace 能力的工作)。
另一個常見任務是從一個字符串中刪除單個字符或用另一個字符來替代它。你也許可以用 re.sub('\n',' ', s) 這樣來實現,但 translate() 能夠實現這兩個任務,而且比任何正則表達式操作起來更快。 (translate 需要配合 string.maketrans 使用。例如:import string 后 'a1b3'.translate(string.maketrans('ab', 'cd')) )
總之,在使用 re 模塊之前,先考慮一下你的問題是否可以用更快、更簡單的字符串方法來解決。