Регулярка которая проверяет промежуток в скобках
написать регулярку которая проверить есть ли в строке "{a,b}" вот такая констукция и если есть проверит что a не меньше 1 а b не больше 3 к пример, вместо 1 и 3 могут быть любые числа
Ответы (2 шт):
let test = `
x {0,3}
√ {1,3}
x {1,4}
√ {11,3}
√ {111,-5}
`;
console.log( test.match( /\{(\d\d+|[1-9]),(-\d+|[0123])\}/g ) );
a >= 1: (\d\d+|[1-9])
\d от слова digit - цифра. + "один или больше совпадений"
\d\d+ - двузначное число, или больше.
| или числа от 1 до 9.
b <= 3: (-\d+|[0123])\}
-\d+ любое отрицательное (целое) число
или числа 0, 1, 2, 3.
Регулярными выражениями нельзя сравнить числа. Регулярные выражения служат для поиска заданного шаблона в тексте. Обработку чисел необходимо производить программно.
Ниже приведен пример обработки чисел программно. В консоль выводятся найденные числа и результат сравнения первого со вторым.
let text = `
{0,3}
{1,3}
{1,4}
{11,3}
{111,-5}
`;
let regex = /\{(-?\d+),(-?\d+)\}/g;
let process = ( groups ) => {
let g1 = parseInt( groups[1] );
let g2 = parseInt( groups[2] );
console.log( g1, g2, g1 > g2 );
};
for ( let oneMatch of text.matchAll( regex ) ) process( oneMatch );