我為此創建了正則運算式模式:{{}}-{{}}-{{}}
(?<![^*])(^|[^{])\{\{[^{}]*\}\}(?!\})([-]{1}\{\{[^{}]*\}\}(?!\})){2}(?![^*])
雙把手桿精確地重復了 3 次,中間有破折號。
但是對于以下情況,正則運算式模式失敗:
-{{}}-{{}}-{{}}
即,即使在第一個雙把手之前出現破折號(-),模式也是匹配的。理想情況下不應該。
uj5u.com熱心網友回復:
這部分(?<![^*])意味著這些不應該是*直接位于當前位置左側的字符(這也用于模式末尾的負前瞻)
相反,您可以在左側和右側斷言空白邊界。
注意這部分[-]{1}可以寫成-
(?<!\S)\{\{[^{}]*\}\}(?:-\{\{[^{}]*\}\}){2}(?!\S)
請參閱regex101 演示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/468598.html
