簡體   English   中英

用Python將單反斜杠替換為雙反斜杠

[英]Replace single backslash into double backslash with Python

我需要使用模式匹配中的python將\\替換為\\\\ 例如,應將$$\\a\\b\\c$$匹配為$$\\\\a\\\\b\\\\c$$

我無法使用正則表達式找到匹配項。

>>> import re
>>> p = re.compile("\$\$([^$]+)\$\$")
>>> a = "$$\a\b\c$$"
>>> m = p.search(a)
>>> m.group(1)
'\x07\x08\\c'

我不能簡單地將輸入作為原始字符串,例如a=r'$$\\a\\b\\c$$'因為它是由markdown處理器自動處理的。 我還發現我無法使用替換方法:

>>> a.replace('\\','\\\\')
'$$\x07\x08\\\\c$$'

我該如何解決這個問題?

您遇到麻煩的原因是因為您輸入的字符串是$$\\a\\b\\c$$ ,而python '$$\\x07\\x08\\\\c$$'其轉換為'$$\\x07\\x08\\\\c$$' ,並且只有反斜杠在字符串中實際上是在段'\\ c'中,處理此問題的最佳方法是輸入a

a=r'$$\a\b\c$$'

這將告訴python將字符串文字轉換為原始字符。 如果您要從文件中讀取內容,則會自動為您完成此操作。

用單反斜杠分割字符串,然后用雙反斜杠加入結果列表。

s = r'$$\a\b\c$$'
t = r'\\'.join(s.split('\\'))
print('%s -> %s' % (s, t))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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