Regex Coach 的这个选择不正确吗?

Is this selection by Regex Coach is incorrect?

[^a]解释如下:


您可以看到它只选择了第一个不是 a 的字符。 但是 regexr.com 选择不同,如下面的屏幕截图所示。

Regexr.com 确保 [^a] 匹配每个不是 a 的字符。 那么其中哪一个是错误的呢?

[^a]代表"any character different than 'a'"。

在您的第二个示例中,您添加了 g 修饰符,这使得选择 global 而不仅仅是第一次出现。

在两个应用程序中进行相同的选择,您应该得到相同的结果。

两者都是正确的。

请注意第一个屏幕截图中 g 标志是如何取消选择的?它只匹配第一个非 a 字符(黄色背景)。

第二个屏幕截图显示了表达式 /[^a]/g,意思是 "as many non-a characters as are matchable"(点击有蓝色背景)。