Ошибка при токенизации Bangla Number (Digits) в качестве числового токена с использованием RegEx

Я новичок в Jison и хочу токенизировать Bangla Digits ০-৯ как числа. Я пробовал регулярное выражение ниже, но оно не работает с ним: Регулярное выражение: (^[০-৯])+(.[০-৯])\b

При тестировании ৭+১ он показывает ожидаемое... «ЧИСЛО» ПОЛУЧИЛО «Недействительно» ???? Ожидаемый результат: ЧИСЛО «+» ЧИСЛО

Пожалуйста, помогите мне! ❤️


person Taslima Akhter    schedule 17.05.2021    source источник
comment
пожалуйста, опубликуйте код   -  person alfian5229    schedule 17.05.2021


Ответы (1)


Хороший вопрос.

Проблема заключается в утверждении границы слова \b. По какой-то причине спецификация механизма регулярных выражений javascript не считает цифры Bangla символами слова. Для \w и \b только буквы и цифры ascii считаются символами слова.

Следовательно, цифра бангла, за которой следует знак плюс (который, конечно, не является символом слова), не считается границей слова и, следовательно, не соответствует утверждению.

Если вы просто отбросите \b, это должно сработать (хотя я бы также отбросил ^: паттерны Jison всегда привязаны, так что не нужно настаивать).

person rici    schedule 17.05.2021