我有一个字符串:
string str1= "hello";
string str2="hel";
我这样做是为了看看str1中是否有str2:
regex e = str2+"*"
bool x=regex_match(str1,e);
cout<<x;
我得到了这个:错误:转换为&#39; std :: __ cxx11 :: basic_string&#39;到非标量类型&#39; std :: __ cxx11 :: regex {aka std :: __ cxx11 :: basic_regex}&#39;请求正则表达式e = str2 +&#34;&#34 ;;
如何在我的正则表达式中使用变量。有人可以告诉我我哪里错了吗? TIA。
答案 0 :(得分:5)
查看有关regex
template <class ST, class SA>
explicit basic_regex ( const basic_string<charT,ST,SA>& str, flag_type flags =
ECMAScript );
构造函数是显式的,所以你应该写
regex e(str2+"*");
不是
regex e = str2+"*";