Регулярное выражение Javascript для соответствия части строки, но не всей строки - PullRequest
1 голос
/ 02 мая 2019

Это мое регулярное выражение: (-?\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] зарезервировано для всей строки.

Очевидно, чтовышесказанное работает для меня, но есть ли у вас идеи, как сделать мое регулярное выражение более точным?Т.е. Я не хочу, чтобы вся строка соответствовала .

1 Ответ

1 голос
/ 02 мая 2019

В вашем паттерне (-?\\d+) повторяется, поэтому вы можете использовать только этот паттерн для сопоставления в text.

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

Таким образом, вам не нужно совпадать со всей строкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...