Правила сопоставления чисел в отслеживаемых словах

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

Вот моё понимание…

Когда мы проверяем слова, должны совпадать три сегмента: ведущий, само слово и завершающий. Мы установили ведущий и завершающий сегменты как символы, отличные от букв… это могут быть знаки препинания, пробелы или цифры. Именно цифры сбивают совпадение в данном случае. Идея заключалась в том, чтобы находить слова даже если перед/после них есть знаки препинания или что-то ещё.

Так вот, регулярное выражение видит 123Test, находит Test, смотрит перед ним и находит 3, что соответствует «символу, отличному от буквы», затем смотрит после и находит конец слова. Таким образом, совпадение происходит по 3Test.

Думаю, нам нужно проверять наличие символов, отличных от букв и цифр, в ведущем и завершающем сегментах, чтобы избежать этого? Не уверен, есть ли причина, по которой мы не включили цифры, или это просто упущение.

2 лайка