如何编写正则表达式来过滤掉字符串与单出现4英寸,分隔字符串数组

How to write regular expression to filter out string with single occurence of 4 in , separated string array

本文关键字:字符串 4英寸 单出现 分隔 数组 正则表达式 过滤 何编写      更新时间:2023-09-26

在下面的例子中,我需要得到只有4而不是44的字符串。

var strs = ["3,4,6","4,5,6","1,2,3,4","44,55","55,44","33,44,55"];
var patt = new RegExp(/[,|^'d]*4[,|^'d]*/);
for(i in strs){
    var str = strs[i];
    var res = patt.test(str);
    if(res){
		console.log(str);
    }else{
		console.error(str);
    }
}

^(?!.*('d4|4'd)).*4.*$
  • (?!.*('d4|4'd))确保字符串中不包含包含4且大于10的数字。
  • .*4.*确保字符串至少包含1个"4"。
演示

Try

^(?!.*('d4|4'd).*).*$

它使用负正向查找来断言不存在4后面跟着数字的组合,或者相反的组合。