Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
匹配特殊数字数据的Javascript regexp模式_Javascript_Regex_Numbers - Fatal编程技术网

匹配特殊数字数据的Javascript regexp模式

匹配特殊数字数据的Javascript regexp模式,javascript,regex,numbers,Javascript,Regex,Numbers,我需要一个JavaScript代码中的regexp模式来识别以下文本 123 1.23 1.23e4 1.23d4 123_txt 1.23_txt 1.23e4_txt JavaScript代码从文件中读取这些数据,并应使用rexexp模式进行计算 匹配上述数据的简单regexp模式是什么?您的regex[+-]?[0-9][0-9+]*\.[0-9de+-]*与123和123\u txt不匹配,因为这些值不包含点\.这在您的regex中不是可选的 您可以将点设置为可选的\?,但随后您必须解

我需要一个JavaScript代码中的regexp模式来识别以下文本

123
1.23
1.23e4
1.23d4
123_txt
1.23_txt
1.23e4_txt
JavaScript代码从文件中读取这些数据,并应使用rexexp模式进行计算


匹配上述数据的简单regexp模式是什么?

您的regex
[+-]?[0-9][0-9+]*\.[0-9de+-]*
123
123\u txt
不匹配,因为这些值不包含点
\.
这在您的regex中不是可选的

您可以将点设置为可选的
\?
,但随后您必须解释最后两个示例中的下划线
\uu
,以及缺少的
txt
,它不是正则表达式的一部分

您可以做的是更新您的正则表达式以匹配字符串开头的一个或多个数字
^[0-9]+
,并在数字后设置两个模式,如
.23e4
\u txt

您的示例不包含前导的
+
-
,因此您可以从一开始就省略
[+-]?
。(您可以随时添加它)

对于示例值,您可以尝试:

解释

  • ^
    在行首断言位置
  • [0-9]+
    匹配一个或多个数字
  • (?:
    非捕获组
    • \.[0-9]+[de]?[0-9+]
      匹配一个点、一个或多个数字、可选的
      d
      e
      ,然后匹配一个或多个数字
  • )?
    关闭非捕获组并将其设置为可选
  • (?:_-txt)?
    _-txt匹配的可选非捕获组
  • $
    在行尾断言位置

请发布您迄今为止尝试过的内容,我们可以帮助您进行调试。看到这个[+-]?[0-9][0-9\*\.[0-9de+-]*它不适用于我上面提到的所有情况!你应该把你的正则表达式添加到你的问题中。