题解 | #字符串通配符#
字符串通配符
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));

