RegEx - 括号末尾的管道(垂直条)(|)/在右括号之前

时间:2013-12-31 08:06:54

标签: javascript jquery regex

我今天在jQuery source code - 第66行(以及其他一些地方)中使用此正则表达式,我找不到任何相关内容。

// Used for matching numbers
[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)

据我所知((stuff|))匹配stuffempty string,我认为它与此相同

[+-]?(?:\d*\.)?\d+(?:[eE][+-]?\d+)?

我在here进行基准测试并且它不稳定(容忍15k)所以..不可靠?

那么这两个正则表达式的交易是什么?一个选择的问题?性能?不同的含义?

1 个答案:

答案 0 :(得分:4)

我建议你在理解正则表达式时很难使用debuggex:

[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)

Regular expression visualization

Debuggex Demo

[+-]?(?:\d*\.)?\d+(?:[eE][+-]?\d+)?

Regular expression visualization

Debuggex Demo

结果:他们的意思相同。