' | e'是什么意思?在RegExp中

时间:2015-05-29 14:49:59

标签: javascript regex

在下面的一行中,' | e&#39 ;?的目的是什么?我试着查一下但是找不到它,而且当它不存在时,该线仍然会按照它应该做的那样。

pattern = /([\+|\-]?[\d]+[\.][\d|\-|e]+)[ ]+([\+|\-]?[\d]+[\.][\d|\-|e]+)[ ]+([\+|\-]?[\d]+[\.][\d|\-|e]+)/g;

编辑:

以下是代码解析内容的示例。

-3.424999 -0.855454 2.257396 
-1.484919 0.665606 -3.151304 
1.636841 -0.848154 -0.458954 
3.732041 0.187906 -1.319734 
-1.756719 0.682006 0.807596 
0.911641 -0.828054 3.040696 
-0.218059 -0.489374 -3.806524 
-1.078099 0.891706 -2.420454 

2 个答案:

答案 0 :(得分:3)

通常,A |会提供其他选项,因此(one|two)会匹配一个或两个。

然而,将|放在[]内表示有人不理解[]如何工作(它们匹配其中任何字符的单个实例 - 或范围,因此{ {1}}匹配a或b或c ...

我怀疑,除非你在匹配的字符串中有[a-z],否则你可以从模式中删除所有|出现,它仍然有效。但是如果没有看到它应该匹配的那种字符串的一些例子,以及你想要捕获的内容,就很难知道更多。

(编辑):现在你提供了一个样本,如果我正在解析那个,我会使用像

这样的东西
|

如果您希望能够接受1.234e56表格的数字,这将改为

/([+-]?\d+\.\d+)\s([+-]?\d+\.\d+)\s([+-]?\d+\.\d+)/

(以上假定总是有一个小数点)

答案 1 :(得分:1)

[\d|\-|e]似乎很奇怪:它是数字或管道或短划线或管道或e。将管子放两次是没用的。

如果目的是允许数字,短划线或e而不是管道,我认为这应该是[\d\-e]