我得括號的子串的數目在一個正則表達式匹配括號的子模式的數量:JavaScript和正則表達式:獲得
var reg=/([A-Z]+?)(?:[a-z]*)(?:\([1-3]|[7-9]\))*([1-9]+)/g,
nbr=0;
//Some code
alert(nbr); //2
在上述示例中,總的爲2:只有第一和最後一對括號將創建分組匹配。
如何知道這個數字的任何正則表達式?
我的第一個想法是要檢查正則表達式的值。$ 1正則表達式。$ 9,但即使沒有相應的parenthseses,這些值不爲空,但空字符串...
我也已經看到RegExp.lastMatch屬性,但是這個只表示最後匹配的字符的值,而不是相應的數字。
所以,我試圖建立另一個正則表達式掃描任何正則表達式和統計這個數字,但它是相當困難...
你有一個更好的解決辦法來做到這一點?
在此先感謝!
如果你能提供一個有問題的輸入樣本和預期的數量以確保我們的想法正確,那將會很好。 – Sheepy
我開發的工具(語法高亮器)將允許用戶定義他們自己的正則表達式,以便按照他們的想法設計其代碼。例如: /(<\ /?h [1-6])(?:?)(\ /?>)/ g 將匹配HTML頁面的標題標籤。這裏,預期的數字是兩個:用戶定義了三對括號,但其中一個是非捕獲的! 我希望它更清楚。 – KorHosik