标题:求助:正则表达式基本用法
取消只看楼主
追梦人zmrghy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:399
专家分:190
注 册:2021-4-9
结帖率:97.22%
已结贴  问题点数:20 回复次数:4 
求助:正则表达式基本用法
求助:正则表达式基本用法

要求效果,如果路径字符串结未尾是'\\',就去除结未尾的'\\'
程序代码:
#include<iostream>
#include<regex>
using namespace std;

int main()
{
    string str1 = "C:\\Users\\Administrator\\Desktop\\JJDown\\Download";
    string str2 = "C:\\Users\\Administrator\\Desktop\\JJDown\\Download\\";
    regex re("(.*)\\{2}(.*)");
    cout << regex_replace(str1, re, "$1$2") << endl;
    cout <<  regex_replace(str2, re, "$1$2") << endl;
}


在RegexBuddy中测试"(.*)\\{2}(.*)",没有问题。
在VS2022 VC++中,不知出了什么问题。。。
反复测试过,只要正则表达式有有 '\\' 字符,就会出错。不知道是什么原因。


搜索更多相关主题的帖子: string Users 正则表达式 Desktop 用法 
2022-12-07 14:38
追梦人zmrghy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:399
专家分:190
注 册:2021-4-9
得分:0 
回复 2楼 rjsp
谢谢,\\\\这个方法,我已经想到,可以去结尾的\\字符。
但是,结尾没有\\字符的,$1和$2之间的\\字符也被错误去除了。。

程序代码:
#include<iostream>
#include<regex>
using namespace std;

int main()
{
    string str1 = "C:\\Users\\Administrator\\Desktop\\JJDown\\Download";
    string str2 = "C:\\Users\\Administrator\\Desktop\\JJDown\\Download\\";
    regex re1(".*(.)");
    regex re2("(.*).");
    if(regex_replace(str1, re1, "$1")== "\\")
        cout << regex_replace(str1, re2, "$1") << endl;
    else
        cout << str1 << endl;

    if (regex_replace(str2, re1, "$1") == "\\")
        cout << regex_replace(str2, re2, "$1") << endl;
    else
        cout << str2 << endl;    
}


2022-12-08 01:28
追梦人zmrghy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:399
专家分:190
注 册:2021-4-9
得分:0 
回复 4楼 rjsp
在C++20标准下 string类中才有ends_with()成员函数
C++20 不支持CLI了,鱼和熊掌,只能选一个呀。
2022-12-09 03:14
追梦人zmrghy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:399
专家分:190
注 册:2021-4-9
得分:0 
回复 6楼 rjsp
对不起,描述有误。
应该说CLI不支持C++20标准,最高支持C++17。
2022-12-09 14:57
追梦人zmrghy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:399
专家分:190
注 册:2021-4-9
得分:0 
回复 8楼 apull
小黄人,好久不见。你还好吗?

原来,你是来看笑话的呀。。。。
2022-12-10 00:42



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-510879-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.163542 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved