У меня есть различные данные, которые мне нужно проанализировать и получить из них вес.
Я использую
- 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).
Может кто-нибудь помочь мне решить эту проблему с ошибкой сегментации?
Спасибо.