原始問題:
如何有效地替換字串中的多個字符,如&-> &,#-> # 等等?
雖然提供的程式碼可以工作,但它涉及多個順序替換,這可能效率低下。
strs = strs.replace('&', '\&') strs = strs.replace('#', '\#') ...
更有效的方法是將
text.replace('&', '\&').replace('#', '\#')
測試效能比較
Method | Time (μs per loop) |
---|---|
Chaining replacements | 0.814 |
import re rx = re.compile('([&#])') text = rx.sub(r'\', text)測試
def mk_esc(esc_chars): return lambda s: ''.join(['\' + c if c in esc_chars else c for c in s]) esc = mk_esc('&#') text = esc(text)效能比較
chars = "&#" for c in chars: text = text.replace(c, "\" + c)檢定:
以上是如何高效替換字串中的多個字元?的詳細內容。更多資訊請關注PHP中文網其他相關文章!