猿问

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

这是我的正则表达式:(-?\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结果中,我可以使用positionvalues[1]values[2],这values[0]是为整个字符串保留的。

显然,以上内容对我有用,但是您是否知道如何使我的正则表达式更加精确?即我不希望整个字符串都匹配


蛊毒传说
浏览 356回答 1
1回答

临摹微笑

由于您的模式(-?\\d+)正在重复,因此您只能使用此模式进行匹配text。let pattern = RegExp('(-?\\d+)', 'g')let text = '-100--10'text.match(pattern)   //output: ["-100", "-10"]这样,您不必匹配整个字符串。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答