我想在形如 "AAA23.jpg" 这样的字符串中找到数字 23,但用“ (?<=AAA)\d+(?=.jpg) ”这句正则表达式,即寻找以“ AAA ”开头,以“.jpg ”结尾,但在 c++中运行期会报错啊
std::regex reg("(?<=AAA)\\d+(?=.jpg)");
用 try catch 找到错误是 regex_error(error_syntax)
,但这句正则表达式语法没错啊,我用其他语言可以运行通过,是不是 c++的 regex 库对语法要求太严格了,不懂,向大佬求教!
1
YenvY 2019-05-29 18:40:22 +08:00 1
C++的 regex 不支持各种 lookbehind(但是 boost::regex 的支持)
坚持用 std 的话应该就把 AAA 一起捕获了然后慢慢挪指针,或者直接匹配两遍 |