當前位置:編程學習大全網 - 圖片素材 - 正則表達式教程

正則表達式教程

import?re

a?=?re.compile(r'\[(.+?)\]')

scope?=?{}

def?replace(ddd):

code?=?ddd.group(1)

try:

return?str(eval(code,?scope))

except?SyntaxError:

exec(code,?scope)

return?code

print(a.sub(replace,?'[x=1],[y=2],[z=2],the?sum?of?[x],[z]?and?[y]?is?[x+y+z]'))

scope是在全局變量裏保存正則匹配出來的x,y,z變量,存到全局變量裏去;

這本書的案例在except SyntaxError:後面少了點代碼,只提供註釋,前面其實已經提到用exec賦值了,只是代碼裏沒有體現出來,我完善了下這個應該能看懂了,還有[],正則已經把[]替換掉了,換成x,y,z對應的值

  • 上一篇:“收獲”是什麽意思?
  • 下一篇:"風華絕代"什麽意思?
  • copyright 2024編程學習大全網