regexp模式识别Fortran数字

时间:2018-04-17 11:41:38

标签: javascript regex fortran

我的数字格式如下

  • 整数如:1, 2, 3
  • 浮动状态:1.23, 1.23e2, 1.23d3
  • 带有种类的整数:12_ip, 15_kp
  • 以种类浮动:1.23_wp, 1.23e2_wp, 1.23d2_wp

什么JavaScript regexp模式可以识别这些数字?我找到了类似下面的东西:

 x=   '(?=\\b|\\+|\\-|\\.)(?=\\.\\d|\\d)(?:\\d+)?(?:\\.?\\d*)(?:[de][+-]?\\d+)?\\b\\.?'

但它无法识别1.23_wp12_kp

1 个答案:

答案 0 :(得分:1)

我试试看:

\b[+-.]?\d+\.?\d*([de]\d+)?(_[wki]p)?\b

PS:我对Fortran不是很熟悉,但我认为.11.5e-30是常见的法律实数。以下改进的模式也匹配:

[+-]?(?:\.|\d+\.?)\d*(-?[de]\d+)?(_[wki]p)?\b

PS:我放弃了前导词边界以匹配.1

使用:

\[+-\]?(?:\.|\d+\.?)\d*(\[de\]\[+-\]?\d+)?(_\[a-z\d\]+)?\b

也匹配

  • 带符号的指数
1.23e-3
1.23d+5
  • 使用pr123或myprecision等名称的自定义精度
1.23e3_pr123
1.23e+3_qwe098
1.23_myprecision
1.23e5_anyname
.23d+5