gpt4 book ai didi

c++ - 用 C++ 替换或删除不在正则表达式中的字符

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

我想用 C++ 删除或替换任何不包含在正则表达式中的字符。例如,如果表达式是:[a-z] 并且字符串是:“Hello-World”,则返回字符串将是:“Hello World”,因为只允许使用 a-z。

谢谢

最佳答案

这是一个示例程序,它使用 C++ 正则表达式执行您想要的操作:

#include <iostream>
#include <regex>
#include <sstream>
#include <string>

int main(int argc, char *argv[]) {
const std::string text = "The quick brown fox jumps over the lazy dog";
const std::regex vowels("[aeiou]");

std::stringstream result;
std::regex_replace(std::ostream_iterator<char>(result), text.begin(), text.end(), vowels, "");

std::cout << result.str();
}

输出是

Th qck brwn fx jmps vr th lzy dg

我认为这非常简单。该程序删除每个元音,或者更确切地说,用空字符串替换每个元音。您应该能够轻松地根据您的需要对其进行自定义。如果您有任何其他问题,请发表评论。

编辑:要将正则表达式变成白名单,只需将其替换为它的反转 [^aeiou]。那么结果就是

euioouoeeao

因为每个不是元音的字符都被替换为空字符串。

关于c++ - 用 C++ 替换或删除不在正则表达式中的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28963810/

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