Я пытаюсь использовать подстановку регулярного выражения для следующих типов строк:
'y = 0'
'y = 10'
'y = 23'
Я хочу, чтобы замена возвращала число, только если оно лежит в диапазоне от 1 до 22. (т. Е. Меньше 1 и больше 22 вернет какой-то другой результат)
У меня написано следующее, и я не могу понять, почему это не сработает:
regexprep('y = 5', 'y = '\b([1-9]$|1[0-9]|2[0-2])\b', '$1')
Есть ли что-то, чего мне не хватает в синтаксисе здесь? Я обнаружил, что если я удалю \b
, то получу правильный результат для:
regexprep('y = 0', 'y = ([1-9]|1[0-9]|2[0-2])', '$1')
т.е. без изменений, и для чисел от 1-22 я получаю правильный результат, но тогда все числа, больше 22, также заменяются на $1
. Понятия не имею почему. Любая помощь будет отличной. Спасибо.