题解 | #字符串通配符#
字符串通配符
https://www.nowcoder.com/practice/43072d50a6eb44d2a6c816a283b02036
	题目不难,正则表达式细节较多,需要注意,完整代码如下:
//获取第一行输入流
let line1 = readline();
//获取第二行输入流
let line2 = readline();
//构建验证通配符的函数;
function checkWildcard(str1, str2) {
    //构建新string,将"?","*"转换成正则表达式中相应的表达,注意不需要大小写,所以都转换成小写(大写亦可);
    let newStr1 = str1.replace(/\?/g,'[A-Za-z0-9]' ).replace(/\*/g, '[A-Za-z0-9]{0,}').toLowerCase();
    let newStr2 = str2.toLowerCase();
    let output = false;
    //由示例5可知,需完全匹配,故加上首尾符号"^"和"$";
    let regex1 = new RegExp('^' + newStr1 + '$');
    //如匹配,则output值由false转变为true;
    if (newStr2.match(regex1)) {
        output = true;
    }
    //如不匹配,输出output初始值false;
    return output;
}
console.log(checkWildcard(line1, line2));
 查看11道真题和解析
查看11道真题和解析