另一個正則表達式問題。我如何創建一個正則表達式來捕獲文本的一部分並在其他地方匹配該部分?正則表達式匹配文本中的重複部分
例如,假設我有一個表達"(ab[cd]) bbb (ab[cd])"
這將匹配以下字符串:
"abc bbb abc"
"abc bbb abd"
"abd bbb abc"
等
我想要做的就是把文字「ABC」的第一截取部分並檢查它也重複在該文本的結尾,所以這些字符串將產生這樣的結果:
"abc bbb abc - Success"
"abc bbb abd - Error"
"abd bbb abc - Error"
"abd bbb abd - Success"
當然,這例如是簡單的和其可以檢查,而不使用正則表達式,但我有一個真實的例子更復雜,我想堅持正則表達式在這裏。
這就是[backreferences](http://www.regular-expressions.info/brackets.html)。 –
形式上,正則表達式與有限狀態機器相同,並且無法用FSM解決這個問題(因爲它需要內存)。因此,對於所有的正則表達式的實現都沒有解決方案。但是,C#中的正則表達式實現可能具有非FSM擴展。 – Oliver