正则表达式专家请帮忙看看是否可以用正则表达式解决此问题:
给定字符串1是任何字符串
而字符串2是包含字符串1所有部分的任何字符串(但不是简单匹配——我会举例说明)
如何使用正则表达式将字符串2中字符串1的所有部分替换为空白,以便剩下的是不在字符串1中的字符串?
例如: str1 = "test xyz"; str2 = "test ab xyz"
我想要得到" ab"或者"ab "。 我能写什么正则表达式,使得当我在str2上运行一个替换函数时,它会返回" ab"?
以下是一些非正则表达式代码:
function findStringDiff(str1, str2) {
var compareString = function(str1, str2) {
var a1 = str1.split("");
var a2 = str2.split("");
var idx2 = 0;
a1.forEach(function(val) {
if (a2[idx2] === val) {
a2.splice(idx2,1);
} else {
idx2 += 1;
}
});
if (idx2 > 0) {
a2.splice(idx2,a2.length);
}
return a2.join("");
}
if (str1.length < str2.length) {
return compareString(str1, str2);
} else {
return compareString(str2, str1);
}
}
console.log(findStringDiff("test xyz","test ab xyz"));
'$1.00'
和'00.1$'
之间看起来没有区别。 - Ja͢ck