使用字符串方式

有时使用 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')) )优化

相关文章
相关标签/搜索