在下面的一行中,' | 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
答案 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]
。