正则表达式[^A-J]和匹配结果

Regular expression [^A-J] and match result

本文关键字:结果 A-J 正则表达式      更新时间:2023-09-26

你能解释一下,为什么下一个匹配的输出结果是s吗?

更新:我认为输出应该是在规则范围字符中匹配的I

var str = "Is this enough?";
var patt1 = new RegExp("[^A-J]");
var result = str.match(patt1); // ["s", index: 1, input: "Is this enought?"]
document.getElementById('id').innerHTML = result;
<p id="id"></p>

正则表达式匹配大写A到大写J范围之外的任何字符,因此s是满足该要求的第一个字符。像您这样的正则表达式将匹配搜索字符串中的任何位置。

更清楚地说,字符组表达式开头的^意味着该组应包括[^ ]内容所描述的所有字符,而不是。您的范围是A-J,因此[^A-J]匹配除AJ之外的所有字符

^的意思是"匹配不在以下字符集中的字符"。因为您没有指定任何标志,所以它只返回第一个匹配项。第一个匹配是s,它不在字符A到J的集合中。