我有一个场景,我想在其中已经有通配符的字符串上使用通配模式进行搜索.用我的话来说,我会说这是一种双向模式匹配要求.
输入和模式字符串可以包含以下任一/两个通配符 - ?表示单个字符,%表示零个或多个字符.假设这些是输入和模式字符串中允许的唯一2个通配符.
例如:
bool IsMatch(字符串输入,字符串模式)//如果输入字符串与模式匹配,则应返回True,否则返回False.
IsMatch("XYZ%","?Y%")//应该返回True
IsMatch("YY?","?Y%")//应该返回True - 输入字符串中的最后一个字符需要单个字符,其中模式匹配Y之后的零个或多个字符(这意味着它包含单个字符匹配为好)
IsMatch("X123","?Y%")//应该返回False - 在模式期望的输入字符串中缺少Y
IsMatch("?Y%","?Y%")//应返回True
IsMatch("%","?Y%")//应返回True - 输入字符串具有表示零个或多个字符的通配符%,并且还可以包含任何字符.在某种程度上,它作为一种模式,本身代表任何大小的任何东西.
我能够找到只讨论在非通配字符串上执行通配模式匹配的文章(例如:Regex).我正在寻找关于算法的指针/想法,因为我很难想出一种可以做这种匹配的算法,因为我开始放下它.感谢您的意见.