c ++ boost regex exception:匹配正则表达式的复杂性超出了预定义的边界

时间:2017-10-27 07:37:56

标签: regex exception boost complexity-theory

我使用了上面的错误 模式

"\b([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})\b"

(用于电子邮件检查)

每当搜索内容的长度超过17个字符时。

我尝试过使用boost 1.42和1.61并得到相同的结果。

该平台是带有g ++ 4.8.5的AIX 7

c ++测试程序非常简单:

boost::regex e({the above search pattern});
int match = boost::regex_search({my search content}, e);

请注意,同一程序不会出现例外情况 Windows(使用MSVC编译)

从其他SO问题来看,我知道有可能得到这个例外。 但我不知道这是否与平台有关。

我也试过使用一些在线正则表达式测试仪,没有问题 相同的搜索模式(即,如果搜索内容包含电子邮件,则在线 工具可以找到匹配)

我的问题是为什么同一个程序具有相同的搜索模式 在Windows上不会失败。

0 个答案:

没有答案