寻找替代方案:
(?<=\.\d\d)\d
(一段时间后匹配第三位数字)
我知道我可以通过其他方法解决它,但我必须使用正则表达式,更重要的是我必须在字符串上使用replace,而不添加回调。
答案 0 :(得分:4)
以消耗模式转换lookbehind并使用捕获组:
并按如下所示使用它:
var s = "some string.005";
var rx = /\.\d\d(\d)/;
var m = s.match(/\.\d\d(\d)/);
if (m) {
console.log(m[1]);
}
编辑:
要使用当前规范从3
中删除str.123
,请使用相同的捕获方法:捕获所需内容并使用以下内容恢复结果中捕获的文本替换模式中的$n
反向引用,只需匹配您需要删除的内容。
var s = "str.123";
var rx = /(\.\d\d)\d/;
var res = s.replace(rx, "$1");
console.log(res);