我有一個正則表達式,旨在匹配特定語法,n次,每次出現後都有一個管道(|),除了最後一次出現。目前,我的模式是沿着(pattern)\|{3}
的路線,但是這不符合沒有尾隨管道的要求。無論如何,我可以完成這個沒有重複(pattern)
?我能想到的最佳解決方案是(pattern)\|{2}(pattern)
。正則表達式:重複模式n次,最終重複的變化
有效實施例:
* | 401 | [2-10]
無效實施例:
* | 401 | [2-10] |
的(pattern)
值是無關的回答我的具體問題,但爲了完整起見,在這裏它是在其目前的形式:(?:(?:((\*)|(\[[\w+ ]\-[\w+ ]\])|(\d+)))\|){3}
編輯
這是正在內.NET消耗, JavaScript的。
你能提供一個真實的例子嗎? – 2014-12-19 01:01:45
同樣,我不認爲這對於實際問題來說是非常關鍵的,但是這將是一個有效輸入的例子:'[1-2] | * | 254' – 2014-12-19 01:03:03
'我能想到的最好的解決方案是)\ | {2}(pattern)。「在我看來,這是最好的解決方案 - 您不必關心處理不匹配的模式和分隔符的數量。爲了防止重複,只需使用字符串連接來構建模式。 – nhahtdh 2014-12-19 02:17:34