Javascript正则表达式匹配字符串的一部分,但不匹配整个字符串

Javascript正则表达式匹配字符串的一部分,但不匹配整个字符串,javascript,regex,Javascript,Regex,这是我的正则表达式:(?\d+)-(?\d+) 目的是匹配表示范围的字符串,包括负数。例如: 1-10 0-100 -1-10,但是: -100--10 然后使用我的正则表达式,我将捕获第一个数字、最后一个数字以及整个字符串。在角度上: let regExp : RegExp = RegExp('(-?\\d+)-(-?\\d+)', 'g'); let values: RegExpExecArray = regExp.exec('-100--10'); 从values结果中,我可以使用位

这是我的正则表达式:
(?\d+)-(?\d+)

目的是匹配表示范围的字符串,包括负数。例如:

  • 1-10
  • 0-100
  • -1-10
    ,但是:
  • -100--10
然后使用我的正则表达式,我将捕获第一个数字、最后一个数字以及整个字符串。在角度上:

let regExp : RegExp = RegExp('(-?\\d+)-(-?\\d+)', 'g');
let values: RegExpExecArray = regExp.exec('-100--10');
values
结果中,我可以使用位置
values[1]
values[2]
,因为
values[0]
是为整个字符串保留的

显然,上面的方法对我很有效,但是你知道如何使我的正则表达式更精确吗?也就是说,我不希望整个字符串都匹配。

在您的模式中
(?\\d+)
正在重复,因此您只能使用此模式在
文本中匹配

let pattern = RegExp('(-?\\d+)', 'g')
let text = '-100--10'
text.match(pattern)   //output: ["-100", "-10"]

这样,您就不必匹配整个字符串。

您所说的“更精确”是什么意思?什么是
AppConstants.ROLLING\u DEP\u DATE\u REGEX
?为什么不使用regexp来匹配您描述的内容?(例如,
/(\d+)-(\d+)/g
)根据您的评论,我更新了问题,谢谢@user1485864这对您有帮助吗?从您的回答中,我理解我的问题没有意义。实际上,我必须匹配整个输入字符串,因为我需要确定两个模式
(?\d+)
-
分隔。谢谢