gpt4 book ai didi

c++ - 在 C++11 正则表达式中插入变量

转载 作者:搜寻专家 更新时间:2023-10-31 01:06:34 25 4
gpt4 key购买 nike

有没有办法在 C++11 中将变量插入到正则表达式中?

例如我想要这个正则表达式:^((?:\w+){$index})\w+
但我必须编写所有这些代码才能到达那里:

vector< char > stringIndex( numeric_limits< int >::digits10 + 2 );
_itoa_s( index, stringIndex.begin()._Ptr, stringIndex.size(), 10 );
const string stringRegex( "^((?:\\w+ ){" );
regex goal( stringRegex + stringIndex.begin()._Ptr + "})\\w+" );

肯定有更好的方法!

最佳答案

使用 std::to_string 将整数转换为字符串。

regex goal( "^((?:\\w+ ){" + std::to_string(index) + "})\\w+" );

顺便说一句,_Ptr vector<T>::iterator的成员您不断访问是特定于实现的,并且使您的代码不可移植。你应该使用 vector::data成员函数。

此外,您可以使用 raw string literals 来避免所有额外的反斜杠.

regex goal( R"reg(^((?:\w+ ){)reg" + std::to_string(index) + R"reg(})\w+)reg" );

关于c++ - 在 C++11 正则表达式中插入变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20520563/

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