我真的很感激你的時間。Python將多個捕獲的REGEX匹配傳遞給函數
我成功地捕獲了一些指定爲* code *的分隔符標籤之間的文本。我有多個IE:*代碼*代碼在這裏#1 *代碼*然後*代碼*代碼在這裏#2 *代碼*。我很努力地將REGEX捕獲的代碼在* code *標記之間傳遞給我的類進行格式化。它一遍又一遍地顯示爲「代碼#1」。
The input text is:
*image1*
Some More Text here
That's a title pic and there are 2 more enable pictures per page.
*code* CENTER CODES HERE *code* Those can be a bit larger. And then there is more
code to show *code* MORE CENTER CODE *code*
Paragraph Test
這裏是我已經捕獲文本,然後遍歷:
replace = CodeboxReplace()
codeboxRE = re.compile('\*code\*(.*?)\*code\*')
found = codeboxRE.findall(thisText)
for item in found:
thisText = codeboxRE.sub(replace(item), thisText)
確定,那麼類CodeboxReplace()看起來像這樣{CODEHERE}是我在的地方標記被替換實際代碼這是在代碼分隔符之間的匹配:
class CodeboxReplace(object):
def __init__(self):
self.counter = 0
def __call__(self, match):
self.counter += 1
.......some not relevant code here................
codeHereRE = re.compile('{CODEHERE}')
found = codeHereRE.findall(myCode)
for item in found:
myCode = codeHereRE.sub(match, myCode)
return myCode
所以,從根本上我想T的捕獲的代碼片段他用分隔符代替{CODEHERE}。但是每場比賽總是隻使用REGEX的第一次捕捉。
幫助!謝謝!如果你想看到它呈現怎樣看
: http://www.americantechnocracy.com/getArticle
最好的問候, 湯姆
這是不是一個真正的[MCVE(https://stackoverflow.com/help/mcve)。您正在省略可能會顯示您想要的代碼的部分內容。我認爲你需要捕獲第一個匹配'* code *(...)* code *'的匹配項,並用它來代替班級中不同文本中第一次出現的「{CODEHERE}」。這是真的? –