我正在尝试在javascript中编写一个正则表达式,以匹配特定字符串后的一系列数字,而不会在结果中获取字符串。到目前为止,我已经想出了这个:
(?!smart_id=)[0-9]+
将针对以下字符串进行测试:
ksld8403smart_id=9034&kqwop
discid=783&smartid=83234&ansqw
fdsjfnfd3209sdf&smart_id=2102&hjg
但我在smart_id之前和之后都得到了这两个数字。测试需要在https://regexr.com/
上执行答案 0 :(得分:0)
您可以将正则表达式与array#map
一起使用。匹配结果后,您可array#split
=
上的结果,并获取第一个索引的值。
var str = `ksld8403smart_id=9034&kqwop
discid=783&smartid=83234&ansqw
fdsjfnfd3209sdf&smart_id=2102&hjg`;
console.log(str.match(/(smart_id=)(\d+)/g).map(matched => +matched.split('=')[1]));