因此,我需要针对reg ex通配符值列表检查字符串(url),以查看是否存在匹配项。我将拦截HTTP请求并根据预先配置的值列表进行检查,如果匹配,请对URL执行某些操作。例子:
Request URL: http://www.stackoverflow.com
Wildcards: *.stackoverflow.com/
*.stack*.com/
www.stackoverflow.*
有没有适合C ++的好库?任何好的例子都会很棒。我看到的伪代码如下:
std::string requestUrl = "http://www.stackoverflow.com";
std::vector<string> urlWildcards = ...;
BOOST_FOREACH(string wildcard, urlWildcards) {
if (requestUrl matches wildcard) {
// Do something
} else {
// Do nothing
}
}
非常感谢。
答案 0 :(得分:0)
答案 1 :(得分:0)
以下代码示例使用正则表达式查找精确的子字符串匹配项。搜索由静态IsMatch方法执行,该方法将两个字符串作为输入。第一个是要搜索的字符串,第二个是要搜索的模式。
#using <System.dll>
using namespace System;
using namespace System::Text::RegularExpressions;
int main()
{
array<String^>^ sentence =
{
"cow over the moon",
"Betsy the Cow",
"cowering in the corner",
"no match here"
};
String^ matchStr = "cow";
for (int i=0; i<sentence->Length; i++)
{
Console::Write( "{0,24}", sentence[i] );
if ( Regex::IsMatch( sentence[i], matchStr,
RegexOptions::IgnoreCase ) )
Console::WriteLine(" (match for '{0}' found)", matchStr);
else
Console::WriteLine("");
}
return 0;
}
}
来自MSDN的代码(http://msdn.microsoft.com/en-us/library/zcwwszd7(v=vs.80).aspx)。