Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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
Regex 正则表达式优化_Regex_Pattern Matching - Fatal编程技术网

Regex 正则表达式优化

Regex 正则表达式优化,regex,pattern-matching,Regex,Pattern Matching,用户输入的输入值可能是: *限制为1个字符的符号(除*外,没有其他符号) 或 0-9个数字和(在点的情况下不能是起始字符或结束字符),限制为6个字符 以下数据为有效示例:0.10;010; 10; 065.34; * 我正在使用以下正则表达式: ^([0-9]+)|([0-9]+[.]{1,1}[0-9]+)|[*]+$ 我发现它太长了,而且不是最优的。有什么建议吗?您可以使用这个较短的正则表达式: ^((?=[\d.]{1,6}$)\d+(?:\.\d+)?|\*)$ (?=[\

用户输入的输入值可能是:

  • *
    限制为1个字符的符号(除
    *
    外,没有其他符号)

  • 0-9个数字和
    (在点的情况下不能是起始字符或结束字符),限制为6个字符
以下数据为有效示例:0.10;010; 10; 065.34; *

我正在使用以下正则表达式:

^([0-9]+)|([0-9]+[.]{1,1}[0-9]+)|[*]+$

我发现它太长了,而且不是最优的。有什么建议吗?

您可以使用这个较短的正则表达式:

^((?=[\d.]{1,6}$)\d+(?:\.\d+)?|\*)$


(?=[\d*]{1,6}$)
是对整个输入强制执行长度=6的一种前瞻性方法。

*
在本例中,只允许使用1个字符或6个字符的数字,使用dotI测试新的正则表达式。它不接受没有点的数字:10;500 ETC您可以在最后一组后重新检查regex?Oops是否遗漏了
。现在修好了,请检查