我正在嘗試使用 Python re.sub 模塊將下面示例中的任何 false 實體替換為 "false, \n"
local Mission = {
start_done = false
game_over = false
} --End Mission
我嘗試了以下操作,但沒有成功替換。我的想法是我以錨字串開始和結束,跳過任何不是“假”的內容,并在我得到匹配時回傳“假 ','”。任何幫助,將不勝感激!
re.sub(r'(Mission = {)(. ?)(false)(. ?)(} --End Mission)', r'\1' ',' '\n')
uj5u.com熱心網友回復:
您可以使用
re.sub(r'Mission = {.*?} --End Mission', lambda x: x.group().replace('false', 'false, \n'), text, flags=re.S)
請參閱正則運算式演示。
備注:
- 正
Mission = {.*?} --End Mission則運算式匹配Mission = {,然后是任何零個或多個與字符一樣少的字符,然后} --End Mission - 然后在匹配的文本中
false替換為。false, \n
請參閱Python 演示:
import re
text = 'local Mission = {\n start_done = false\n game_over = false\n\n} --End Mission'
rx = r'Mission = {.*?} --End Mission'
print(re.sub(rx, lambda x: x.group().replace('false', 'false, \n'), text, flags=re.S))
uj5u.com熱心網友回復:
沒有正則運算式的另一種選擇:
your_string = 'local Mission = {\n start_done = false\n game_over = false\n\n} --End Mission'
print(your_string.replace(' = false\n', ' = false,\n'))
輸出:
local Mission = {
start_done = false,
game_over = false,
} --End Mission
uj5u.com熱心網友回復:
前提是必須替換前面= 和后面的每個“假”字串,那么這里是一個正則運算式:\n
re.sub(r'= (false)\n', r'= \1,\n', text)
注意:您在正則運算式中引入了 5 個組,因此您應該使用\3而不是\1指“假”,組從 1 開始,請參閱段落中的檔案\number
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/475198.html
