簡體   English   中英

re.sub不適用於特定的正則表達式模式

[英]re.sub not working for a particular regex pattern

我正在使用以下代碼:

re.sub(inputpattern,outputpattern, currentline)

在上面的代碼中,我正在從csv讀取outputpattern的值,其值為:

\\1-\\2-\\3-\\4

我正在閱讀如下:

outputpattern = row['PREFIX_1_WRT_FMT']

我也嘗試過:

outputpattern = "'"+ row['PREFIX_1_WRT_FMT'] +"'"

問題是它沒有將其視為正確的格式,但是如果我像下面這樣對它進行硬編碼,它就可以正常工作:

re.sub(inputpattern,'\\\\1-\\\\2-\\\\3-\\\\4', currentline)

如果您將反斜杠作為文字字符串使用,則僅需要轉義反斜杠。

"\\1-\\2-\\3-\\4"

如果您從輸入中讀取它,則不必這樣做。 您需要將CSV中的模式更改為\\ 1- \\ 2- \\ 3- \\ 4

如果您不喜歡在使用文字字符串時轉義每個字符,也可以使用原始字符串,方法是在字符串前加上字母r。

r"\1-\2-\3-\4"

暫無
暫無

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

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