以下行在 jQuery 源代码中:
// Used for matching numbers
core_pnum = /[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,
我对两个非捕获组中的最后一个垂直条感到困惑,
(?:\d*\.|)
和
(?:[eE][\-+]?\d+|)
正则表达式 /(a|b)/ 匹配 a 或 b,所以我想知道 /(a|b|)/ 匹配什么,它似乎“匹配所有内容”,换句话说
reg1 = /(a|b)/;
reg1.test('c'); // false
reg2 = /(a|b|)/;
reg2.test('c'); // true
到底是怎么回事?