例如,如果我有以下句子:
a cat bit a dog on the butt before running away
如果我想使用的 2 个字符是“a”和“b”,那么我想匹配直到“a”和“b”的数量相等,如下所示:
a cat bit a dog on the butt b
在上面的例子中,句子有 5 个 a 和 3 个 b。我想要达到 3 个 a 和 3 个 b 的程度。
谢谢你的帮助。
最佳答案
这不可能。
an bn 不是 regular , 因此在数学上不可能与正则表达式匹配,即使使用增强的正则表达式也是如此。
您可以使用以下函数获取不使用正则表达式的范围:
var input = "a cat bit a dog on the butt b";
console.log(getRange(input, "a", "b"));
function getRange(input, char1, char2){
var indexStart = -1;
var count1 = 0, count2 = 0;
for(var i = 0; i < input.length; i++){
var char = input[i];
switch(char){
case char1:
count1 += 1; break
case char2:
count2 += 1; break;
}
if(char == char1 || char == char2){
if(indexStart == -1)
indexStart = i;
if(count1 == count2)
return [indexStart, i];
}
}
return [-1, -1];
}
关于javascript - 正则表达式 - 匹配直到有相同数量的 2 个特定字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47644164/