Ошибка сегментации C ++ std :: regex - PullRequest
0 голосов
/ 05 июля 2019

У меня есть различные данные, которые мне нужно проанализировать и получить из них вес.

Я использую

  • C ++ 11
  • std:: regex
  • Debian 9.9
  • gcc 6.3.0

Проблема заключается в том, что иногда возникает ошибка сегментации, это происходит очень редко.

Входные данные, которые выдают ошибку, в основном состоят только из пробела и символов новой строки.

Вот регулярное выражение:

(?:\b(?:(kilogram\.*s*\.*|kg\.*s*\.*)(?:[^[:alnum:]])*)(?:\s*weight\s*)*(?:\s*is\s*|\s*are\s*)*)\W*([\d\.,]*\d+\b)|(?:(?:[\s\.]?|^)([\d\.,]*\d+)\W*(kilogram\.*s*\.*|kg\.*s*\.*)\b)

Пример регулярного выражения, которое работает на regex101.com, но вызывает ошибку сегментации в C ++ намой сервер Debian regex101

Вот еще regex101 примеров ввода, просто чтобы быстро понять, что ищет регулярное выражение.

Вот пример кода C ++ , который не работает.

А вот тот же код C ++ , который работает, но с использованием другого онлайн-компилятора (cpp.sh).

Может кто-нибудь помочь мне решить эту проблему с ошибкой сегментации?

Спасибо.

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