正则表达式中的模糊匹配字符串1:只含有英⽂字母,
字符串2:含有英⽂字母和*,其中符号*表⽰匹配任意字符0或者多次,即正则表达式⾥⾯的含义。
现在给定这样的两个串,要求判断是否匹配?
bool isMatch ( const char *str1, const char *str2)
例如:str1 = "hello", str2 = "he*o",则⼆者匹配,返回true,
str1 = "hello", str2 = "he*l",则不匹配,返回false。
bool isMath ( const char *str, const char *pattern )
{
regex匹配if( NULL == str || NULL == pattern )
{
return false;
}
if ( *str == 0 || *pattern == 0 )
{
if ( *str == 0 && *pattern == 0 )
{
return true;
}
if ( *pattern == '*' ) //if(*pattern=='*' && *(pattern+1)==0)?
{
return true;
}
return false;
}
if ( *pattern == '*' )
{
int str_len = strlen ( str );
for ( int i = 0; i < str_len; ++i )
{
if ( isMath ( str + i, pattern + 1 ) )
{
return true;
}
}
return false;
}
if ( *pattern == *str )
{
return isMath ( str + 1, pattern + 1 );
}
return false;
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论