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

标签 javascript regex

这是我的正则表达式:(-?\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/

相关文章:

javascript - ionic 框架的动态数据

javascript - vue/vuetify 模态模式或最佳实践设计

javascript - .detach().sort().appendTo() 在 Safari 移动设备上不起作用

python - 使用正则表达式从字符串中提取数字

javascript - 使用正则表达式选择整个字符串

javascript - 如何在条件下显示 anchor 标记以及单击 anchor 时显示内容,否则不显示( Angular 新手)?

用于匹配 URL 行尾或 "/"字符的正则表达式

java - 有没有办法用 "or"语句绕过正则表达式分组?

python - 正则表达式:将子字符串替换为多个单词形式

javascript - 当对象具有数组值时,_.findwhere 不起作用