这是我的正则表达式:(-?\d+)-(-?\d+)
。
目的是匹配表示范围的字符串,包括负数。例如:
1-10
0-100
-1-10
,还有:-100--10
然后使用我的正则表达式,我将捕获第一个数字、最后一个数字以及整个字符串。在 Angular 中:
let regExp : RegExp = RegExp('(-?\\d+)-(-?\\d+)', 'g');
let values: RegExpExecArray = regExp.exec('-100--10');
根据 values
结果,我可以使用位置 values[1]
和 values[2]
,作为 values[0 ]
为整个字符串保留。
显然,上面的方法对我有用,但你知道如何让我的正则表达式更精确吗? IE。 我不想匹配整个字符串。
最佳答案
在你的模式中 (-?\\d+)
是重复的,所以你只能使用这个模式来匹配 text
。
let pattern = RegExp('(-?\\d+)', 'g')
let text = '-100--10'
text.match(pattern) //output: ["-100", "-10"]
这样,您就不必匹配整个字符串。
关于Javascript正则表达式匹配部分字符串而不是整个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55956334/