Pythonre模塊沒有原子分組,但是它可以被模擬,例如參見這個
在圖中len(data)代表越來越多的句子(由 60 個單詞組成的字串)。可以在此處找到重現它的代碼。
我的假設不正確嗎?更一般地說,我如何撰寫一個正則運算式(在 Python 中),它只會嘗試交替正則運算式中的一個分支,而不嘗試其他分支?
uj5u.com熱心網友回復:
你的假設是不正確的。原子模式的全部意義在于防止回溯到模式中。
該atomic_group模式(?=(...))\1在您的代碼中屬于型別,非原子模式屬于(?:...)型別。因此,由于使用了捕獲組,第一個已經輸給了第二個,請參閱捕獲組 VS 非捕獲組。
此外,您需要將字串與模式匹配兩次atomic_group,第一次是前瞻,第二次是后向參考。
因此,僅當您需要控制較長模式內的回溯時才使用此技術。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/348227.html
