我是 Python 新手。我正在處理 LaTeX 檔案,其中包含大量數學、編程代碼等。我已將多個空格替換" "為" ". 但我需要忽略我的代碼的某些部分。例如:
普通文本: "Hai, I am New to Python". 我已經用單個空格替換了多個空格"Hai, I am New to Python"。此正則運算式應用于整個檔案。但我需要忽略某些 LaTeX 標記中的多個空格。例如
Hai, I am New to Python
\begin{lstlisting}[title=Sample]
print("Hai, I am New to Python")
def Code(a):
print(a)
Code("Hai, i am new to Perl")
\end{lstlisting}
在我的代碼多空間更改為之間\begin{lstlisting}的單個空間之后\end{lstlisting}
"Hai, I am New to Python"
\begin{lstlisting}[title=Sample]
print("Hai, I am New to Python")
def Code(a):
print(a)
Code("Hai, i am new to Perl")
\end{lstlisting}
如何忽略 to 之間\begin{lstlisting}的python 正則運算式\end{lstlisting}?
uj5u.com熱心網友回復:
正確的 LaTeX 決議器是要走的路,但這可能是一個“足夠好”的解決方案。看你怎么想。
import re
text = '''
Hai, I am New to Python
\\begin{lstlisting}[title=Sample]
print("Hai, I am New to Python")
def Code(a):
print(a)
Code("Hai, i am new to Perl")
\\end{lstlisting}
'''
text = re.sub(r' (?!(?:(?!\\begin\{lstlisting\}).)*\\end\{lstlisting\})', ' ', text, flags=re.DOTALL)
print(text)
如果\end{lstlisting}出現在字串前面而不\begin{lstlisting}出現在它之前,它的作業原理是不替換空格。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/483121.html
下一篇:正則運算式和PHP多變數
