gpt4 book ai didi

android - C++ 正则表达式在 ideone.com 上匹配,但在 Android NDK 构建中不匹配

转载 作者:行者123 更新时间:2023-11-30 05:21:29 27 4
gpt4 key购买 nike

我有以下程序在 ideone 中正常工作

#include <iostream>
#include <regex>
using namespace std;

int main() {
if (regex_match("test", regex("^[_a-z0-9]{3,12}$"))) {
cout << "match" << endl;
} else {
cout << "no match" << endl;
}
return 0;
}

它符合预期。只需检查包含 3 到 12 个字母数字字符或下划线的字符串。

但是,在 Android(使用 ndk-build 和 gnuSTL_shared 构建)上以 native 代码运行的相同代码失败(不匹配)。

如果 Android 不正确支持正则表达式,我的构建不应该编译失败吗?我在这里遗漏了什么明显的东西吗?

最佳答案

我今天遇到了同样的问题,根据我自己的经验,只需更改表达式中的“_”位置即可。

以我为例,只是更换

std::regex reg("[^. _A-Za-z0-9]");

std::regex reg("[^. A-Za-z0-9_]");

而且运行正常,可能是因为gcc版本太旧了。

关于android - C++ 正则表达式在 ideone.com 上匹配,但在 Android NDK 构建中不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40064726/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com