Почему этот RegEx не работает правильно? - PullRequest
2 голосов
/ 06 мая 2010

У меня есть этот RegEx здесь:

/^function(\d)$/

Это соответствует function(5), но не function(55). Как получилось?

Ответы [ 3 ]

6 голосов
/ 06 мая 2010

Остальные плакаты верны в отношении +, но на каком языке вы используете для анализа регулярного выражения? Разве вы не должны сбежать ()? В противном случае он должен захватить цифру (ы).

Я думаю, тебе понадобится ...

/^function\(\d+\)$/
5 голосов
/ 06 мая 2010

/^function(\d+)$/

Вам нужно добавить +, чтобы сделать \ d (цифры) жадными - чтобы максимально совпадать.(Предполагая, что это то, что вам нужно, поскольку оно, вероятно, будет соответствовать

function(3242345235234235235234234234535325234235235234523), а также function(55)

Повторяет предыдущий элемент один или несколько раз. Жадный, так многокак можно более подходящие элементы будут сопоставлены перед попыткой перестановок с меньшим количеством совпадений предыдущего элемента, вплоть до точки, где предыдущий элемент сопоставляется только один раз.

, ссылаясь на +

http://www.regular -expressions.info / reference.html

0 голосов
/ 06 мая 2010

Потому что вы дали только один \d. Если вы хотите сопоставить более чем одну цифру, скажите это так.

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