这是静态字符串列表,它只在字符串的开始或结尾使用通配符。没有任何其他正则表达式规则。AAAA, BBBB*, *CCCC, *DDDD*
。我需要找到一个给定的字符串匹配任何字符串在这个列表中。我正在寻找这样的东西。
bool isMatch(std::string str)
{
std::vector<string> my_list = {AAAA, BBBB*, *CCCC, *DDDD*};
if(str.matchAny(my_list))
return true;
return false;
}
我不喜欢使用像boost这样的第三方软件。你觉得C++11std::regex
就能做到吗?还是有其他简单的方法?
2条答案
按热度按时间blmhpbnm1#
正则表达式在这里显得有些多余,只需在适当的位置查找每个字符序列即可:
hgqdbh6s2#
我通常是这样做的,我用
".*"
替换"\\*"
,用"."
替换"\\?"
。下面是它的C++代码。
下面是一个link,用于在onlinegdb上运行代码