0

我有一个文件,其中包含以下内容:

SomeText `SomeOtherText`

SomeOtherTextAgain:
* Text1

我正在尝试替换` and *字符,以便我的输出是:

SomeText \\text{ SomeOtherText } 

SomeOtherTextAgain:
\\begin{itemize}
\item Text1
\\end{itemize}

所以像:

  • * mystring \n变成\\begin{itemize} \n \item mystring \n \\end{itemize}
  • mystring变成\\texttt{mystring }

我尝试使用 python 提供的正则表达式库中的替换选项来执行此操作,但我不知道如何在替换之间保存文本。例如,我使用以下代码替换的星号:

re.sub('\*.*','\\\\begin{itemize} \n \\item \n \\\\end{itemize}',mystring)

但是,我丢失了.*. 我正在尝试用正则表达式做的事情还是我应该找出不同的解决方案?

谢谢!

4

1 回答 1

2

当然可以使用正则表达式,将要保留的文本放入括号中,然后在 repl 字符串中通过“\1”引用它(第一个,\2 第二个等):

import re
mystring = '* Text1'
print re.sub(r'\* (.*)',r'\\begin{itemize} \n\\item \1 \n\\end{itemize}',mystring)

输出:

\begin{itemize} 
\item Text1 
\end{itemize}

有关更多详细信息,请参阅http://docs.python.org/2/library/re.html#re.sub

于 2013-07-04T22:53:58.130 回答