我想從字串的開頭和結尾位置匹配任何非單詞字符,但是如果遇到包含字串的非單詞字符,我希望它在它之前停止匹配。
我創建了以下正則運算式模式:
^\W (?!(\W )((?!\1).) \1)?
我希望它匹配如下圖所示,因為它將匹配從字串開頭到它到達負前瞻模式中的封閉引號的任何非單詞字符:

但結果是這樣的:

Regex101 演示
我究竟做錯了什么?
uj5u.com熱心網友回復:
你需要使用
^\W*?(\W)(?=.*?\b\1\W*$)
請參閱正則運算式演示。詳情:
^- 字串的開始\W*?- 零個或多個非單詞字符,盡可能少(\W)- 捕獲到組 1 中的非單詞字符(?=.*?\b\1\W*$)- 與緊隨其后的位置匹配的正向前瞻.*?- 除換行符以外的零個或多個字符,盡可能少\b- 一個詞的邊界\1- 與第 1 組相同的值\W*- 零個或多個非單詞字符$- 字串的結尾。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/371595.html
