求助:俩个问题,正则问题 和 vector容器问题
程序代码:
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { Regex^ re1 = gcnew Regex(".?:?[\\\\]?(.*)"); std::vector<std::string> StrArr = { "E:\\编程教程\\VC++ 视频教程", ":\\编程教程\\VC++ 视频教程", "\\编程教程\\VC++ 视频教程", "编程教程\\VC++ 视频教程", "D:\\123\\abc\\ABC", ":\\123\\abc\\ABC", "\\123\\abc\\ABC", "123\\abc\\ABC" }; //std::vector<String^> StrArr = { "E:\\编程教程\\VC++ 视频教程", ":\\编程教程\\VC++ 视频教程", "\\编程教程\\VC++ 视频教程", "编程教程\\VC++ 视频教程", "D:\\123\\abc\\ABC", ":\\123\\abc\\ABC", "\\123\\abc\\ABC", "123\\abc\\ABC" }; for (auto i : StrArr) { textBox1->Text += gcnew String(i.c_str()) + " -> " + gcnew String(re1->Replace(gcnew String(i.c_str()), "$1")) + "\r\n"; //textBox1->Text += i + " -> " + re1->Replace(i, "$1") + "\r\n"; } textBox1->Text += textBox2->Text +" -> "+ re1->Replace(textBox2->Text, "$1") + "\r\n"; }
正则问题
第4行少了一个字,第8行少了一个字。 如何写才能让字符串开头 没有盘符,冒号 反斜杠,又不少其它字符。
程序代码:
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { Regex^ re1 = gcnew Regex(".?:?[\\\\]?(.*)"); //std::vector<std::string> StrArr = { "E:\\编程教程\\VC++ 视频教程", ":\\编程教程\\VC++ 视频教程", "\\编程教程\\VC++ 视频教程", "编程教程\\VC++ 视频教程", "D:\\123\\abc\\ABC", ":\\123\\abc\\ABC", "\\123\\abc\\ABC", "123\\abc\\ABC" }; std::vector<String^> StrArr = { "E:\\编程教程\\VC++ 视频教程", ":\\编程教程\\VC++ 视频教程", "\\编程教程\\VC++ 视频教程", "编程教程\\VC++ 视频教程", "D:\\123\\abc\\ABC", ":\\123\\abc\\ABC", "\\123\\abc\\ABC", "123\\abc\\ABC" }; for (auto i : StrArr) { //textBox1->Text += gcnew String(i.c_str()) + " -> " + gcnew String(re1->Replace(gcnew String(i.c_str()), "$1")) + "\r\n"; textBox1->Text += i + " -> " + re1->Replace(i, "$1") + "\r\n"; } textBox1->Text += textBox2->Text +" -> "+ re1->Replace(textBox2->Text, "$1") + "\r\n"; }
已启动生成...
1>------ 已启动生成: 项目: RegexPractice, 配置: Debug x64 ------
1>RegexPractice.cpp
1>D:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.32.31326\include\vector(900,1): error C3699: “&&”: 不能在类型“_Ty”上使用此间接寻址
1> with
1> [
1> _Ty=System::String ^
1> ]
1>C:\Users\Administrator\source\repos\RegexPractice\RegexPractice\Form1.h(109): message : 查看对正在编译的 类 模板 实例化“std::vector<System::String ^,std::allocator<_Ty>>”的引用
1> with
1> [
1> _Ty=System::String ^
1> ]
1>D:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.32.31326\include\vector(943,1): error C3699: “&&”: 不能在类型“_Ty”上使用此间接寻址
1> with
1> [
1> _Ty=System::String ^
1> ]
1>已完成生成项目“RegexPractice.vcxproj”的操作 - 失败。
========== “生成”: 0 成功,1 失败,0 更新,0 已跳过 ==========
vector容器问题
std::vector<std::string>StrArr 可以, 如果换成 std::vector<String^> StrArr 就出这个问题了。不知道如何解决。。。
Form1.rar
(1.33 KB)
[此贴子已经被作者于2022-12-14 13:42编辑过]