在Python中替换双反斜杠和括号

时间:2013-03-21 17:52:41

标签: python pandoc multimarkdown

我正在尝试编写一个脚本,可以将\\[\\]之类的内容转换为$$,以便将MultiMarkdown文档转换为可以在HTML中显示方程式的Pandoc markdown文档。我正在使用Python来使用

查找这些字符的所有实例
 matchstring=r'\\['
 re.sub(matchstring,'$$',content)

但是我遇到了以下错误:

unexpected end of regular expression:line 15:matchstring=re.compile(r'\\[')
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/re.py", line 190:
return _compile(pattern, flags)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/re.py", line 245:
raise error, v # invalid expression

很可能是因为我在那里的最后[。有没有人知道解决这个问题的方法?

4 个答案:

答案 0 :(得分:1)

逃离[

matchstring=re.compile(r'//\[')

或者更好的是,使用:

content.replace("//[", "$$")

并且根本不涉及正则表达式。

答案 1 :(得分:1)

pandoc -f markdown_mmd -t markdown

会为你做这个! (对于pandoc> = 1.11)

答案 2 :(得分:0)

您的问题是您写的是r'//[',而不是r'\\[', 但无论如何要更好地尝试这个:

matchstring.replace(r'\\[', '$$').replace(r'\\]', '$$')

答案 3 :(得分:0)

如果你在你的正则表达式中使用“[”,我会认为它需要有一个转义,因为它在正则表达式中使用。

尝试以下方法之一:

content = "testing123//]testing456"
matchstring = "//]"
result = content.replace(matchstring, "$$")
print result

content = "testing123//]testing456"
matchstring = '(//\])'
result = re.sub(matchstring,'$$',content)
print result

要么适合你的目的。