用于使用VCS在JavaScript中匹配子字符串的正则表达式
我目前正在用JavaScript编写一个短程序,该程序匹配字符串中的子字符串,中间有一个通配符用于使用VCS在JavaScript中匹配子字符串的正则表达式,javascript,regex,expression,match,Javascript,Regex,Expression,Match,我目前正在用JavaScript编写一个短程序,该程序匹配字符串中的子字符串,中间有一个通配符 let string1 = "The man is outside."; let string2 = "I have two minutes."; let string3 = "The men are here."; 我试图找到一个包含“m_n”的正则表达式 我一直在尝试使用以下功能: let matching = function(string) { if (string.match(^m
let string1 = "The man is outside.";
let string2 = "I have two minutes.";
let string3 = "The men are here.";
我试图找到一个包含“m_n”的正则表达式
我一直在尝试使用以下功能:
let matching = function(string) {
if (string.match(^m.*n$)) {
console.log("it does");
}
else {
console.log("it doesnt");
}
}
但我一直收到错误“SyntaxError:Unexpected token^”
有人有什么建议吗?我猜可能
m[^n]n
或
或
可能很接近,也可能不接近
如果您希望简化/修改/探索表达式,将在的右上面板中进行解释。如果您愿意,还可以在中查看它与一些示例输入的匹配情况
const regex=/m[^n]n/gm;
const str=`那个人在外面。
我有两分钟。
男人们在这里;
让m;
while((m=regex.exec(str))!==null){
//这是避免具有零宽度匹配的无限循环所必需的
if(m.index==regex.lastIndex){
regex.lastIndex++;
}
//可以通过'm`-变量访问结果。
m、 forEach((匹配,组索引)=>{
log(`Found match,group${groupIndex}:${match}`);
});
}
问题是您忘记分配/(正斜杠)。
我建议在if语句中使用test而不是match
let string=“msdfsxn”;
如果(/^m.*n$/.test(字符串)){
console.log(“它有”);
}否则{
log(“它没有”);
}
您希望它是自己的文字还是在另一个作品中,好吗<代码>/\bm.n\b/如果它自己的字。中间只有一个通配符?
\bm[^n]n\b
\bm.*?n\b