問題:對于string="jsfd{sdf}df",我想把sdf抽出來變成"jsfd{}df"。使用patten = re.compile(r"{(.*?)}"),但是發現用findall會找到sdf,用finditer或者sub就會匹配成{sdf},不知道是為什么?正則在什么時候會匹配出兩邊的括號呢?問題本身用patten = re.compile(r'(?<={).*?(?=})')已經解決,但是很好奇findall和finditer以及sub匹配出來不同的原因。
為何同樣的Pattern,sub和findall找出來的結果不一樣?
幕布斯6054654
2018-12-21 15:58:13