我有一个像这样的字符串。
var str = "[cat dog] [dog cow] [cow cat] [cat tiger] [tiger lion] [monkey dog]";
我要匹配不包含特定动物的那对动物。 例如,我想选择所有不包含狗的动物。 所以输出应该是
[cow cat]
[cat tiger]
[tiger lion]
是否可以使用str.match()
方法使用正则表达式进行匹配?
答案 0 :(得分:1)
这似乎可行:
var regex = /\[(?!dog)([a-z]+) (?!dog)([a-z]+)\]/gi;
var string = "[cat dog] [dog cow] [cow cat] [cat tiger] [tiger lion] [monkey dog]";
console.log(string.match(regex));
上面的正则表达式在每对括号中只匹配两只动物-这个匹配一个或多个:
var regex = /\[((?!dog)([a-z]+) ?){2,}\]/gi;
var string = "[cat dog] [dog cow] [cow cat] [cat tiger] [tiger lion] [monkey dog] [one animal two animal three animal]";
console.log(string.match(regex));