1 回答

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超6個(gè)贊
您的two正則表達(dá)式包含一個(gè)^斷言,該斷言阻止了關(guān)鍵字后的匹配。
下面是您的最后一次嘗試,更正了此錯(cuò)誤,為公式命名捕獲并添加了整個(gè)字符串,并刪除了問(wèn)號(hào),因此現(xiàn)在需要“Some keyword”。此外,由于標(biāo)志,我替換[eE]為, : ei
var one = /Some keyword /i;
var two = /(?:(?:|[-+_*/])(?:\s*-?\d+(\.\d+)?(?:e[+-]?\d+)?\s*))+$/i;
var one_or_two = new RegExp("(?<whole>(" + one.source + ")(?<formula>" + two.source + "))")
var str = "Some keyword 2 + 1";
if (match = str.match(one_or_two)) {
console.log(match.groups.formula); // Only the formula.
console.log(match.groups.whole); // The whole string.
}
添加回答
舉報(bào)