[英]Python Regex re.sub not working in For loop
我無法用編輯后的文本替換特定模式的特定出現。 我已經使用了for ... loop來提出如何獲得特定模式的出現,但是我無法在re.sub語句中使用它。
這是我的Python 2代碼:
def split(content):
count = 0
s = ""
for i in re.finditer(r'(?s)(\\thinhline\n\\\\\[-16pt]\n)([a-zA-Z\s\(\)]+)(.*?)(\n *\\\\)', content):
count= count + 1
x = len(re.findall('^\s*&', i.group(3), re.M))
if x < 6:
break
elif x >= 6:
g = normalizationConstraints(i.group(3),i.group(2)) + "\n"
s = str(g) + "\n"
content = re.sub(i,s,content)
return content
錯誤就在網上:
content = re.sub(i,s,content)
由於變量“ i”顯然不是正則表達式。
錯誤:
TypeError: first argument must be string or compiled pattern
我該如何解決這個問題?
謝謝。
我不確定您想要什么,但是錯誤告訴您正確的事情: i
不是正則表達式模式。 re.finditer
返回的迭代器MatchObject
在這種情況下S,大概字符串。 re.sub
將正則表達式模式作為其第一個參數。
根據您要使用此代碼實現的目的,您可能需要使用與re.sub
不同的函數,或者需要提供實際的正則表達式。 如果您可以提供有關目標的更多詳細信息(也許是基於一些示例輸入的預期輸出,如@ 200_success所示),那將會有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.