我正在尝试用JavaScript编写正则表达式,以匹配特定字符串后面的一系列数字,而不在结果中获取该字符串。到目前为止,我已经想出了以下内容:
(?!smart_id=)[0-9]+
需要测试的内容是与以下字符串匹配:
ksld8403smart_id=9034&kqwop
discid=783&smartid=83234&ansqw
fdsjfnfd3209sdf&smart_id=2102&hjg
但我得到了smart_id前后的两个数字。测试需要在 https://regexr.com/ 上进行。
/(?<=smart_id=)[0-9]+/.exec("smart_id=232134")[0]
显示为"232134"
,但为了使其与其他浏览器和版本兼容,您需要使用/smart_id=(\d+)/.exec(str)[1]
。因此,在regexr上,您将永远无法丢弃匹配左侧的一部分(直到它支持新的JS正则表达式语法)。 - Wiktor Stribiżew