1

我正在尝试编写一个脚本,该脚本可以将诸如\\[\\]转换为之类的东西$$,以便将 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

4 回答 4

1

逃脱[

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

或者更好的是,使用:

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

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

于 2013-03-21T17:55:59.640 回答
1
pandoc -f markdown_mmd -t markdown

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

于 2013-03-22T04:51:55.300 回答
0

你的问题是你写r'//[',不是r'\\[',但无论如何尝试更好:

matchstring.replace(r'\\[', '$$').replace(r'\\]', '$$')
于 2013-03-21T17:54:41.123 回答
0

如果您在正则表达式中使用“[”,我会假设它需要在正则表达式中使用时对其进行转义。

尝试以下方法之一:

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

或者

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

要么应该为您的目的工作。

于 2013-03-21T18:26:12.507 回答