一千萬個為什麽

搜索

正則表達式失敗

Anyone help? When I run this I get " invalid quantifier ?<=href= "

var aHrefMatch = new RegExp("(?<=href\=")[^]+?(?=")"); 
var matchedLink = mystring.match(aHrefMatch);

但我知道正則表達式是有效的。

有任何想法嗎?

最佳答案

Javascript不支持lookbehind斷言。它只支持前瞻性的。產生錯誤是因為它假設了?是0或1的量詞,但是在子模式的開頭沒有要量化的元素(由左括號)開始)

此外,你的字符串似乎缺少一些反斜杠,因為雙引號不會在那裏轉義。它應該產生語法錯誤。

也許這段代碼可以幫助你做你想要實現的目標:

var match = mystring.match(/href=\"([^\"]*)\"/);
var matchedLink = match[1];

轉載註明原文: 正則表達式失敗