C ++ std :: regex分段错误

时间:2019-07-05 14:37:46

标签: regex c++11

我需要解析各种数据并获得权重。

我正在使用

  • 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上运行但在我的Debian服务器regex101上以C ++引发分段错误的正则表达式示例

这里有更多regex101输入示例,只是为了快速了解正则表达式在搜索什么。

这是C++ code失败的示例。

这里是有效的C++ code,但使用另一个在线编译器(cpp.sh)。

有人可以帮助我解决此细分错误问题吗?

谢谢。

0 个答案:

没有答案