Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.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
Php 在3个数字上用点进行预匹配_Php_Preg Match - Fatal编程技术网

Php 在3个数字上用点进行预匹配

Php 在3个数字上用点进行预匹配,php,preg-match,Php,Preg Match,我有这样的数字: 1.80 2.75 @1.55 这些数字是字符串,我正试图让他们通过预赛。此时,我有以下几点: $pattern = '/ [0-9]{1}\.[0-9]{2}/'; $result = preg_match($pattern, $feed, $matches); 这很好,但我需要更精确的赛前比赛,我没有找到解决办法。 通过这种模式,可以找到像1.556这样的数字。我不想要这个,我的数字长度是4个字符。包括在内 另外,在这里,我无法捕捉到以a开头的数字,只有一个空格。我该

我有这样的数字:

1.80
2.75
@1.55

这些数字是字符串,我正试图让他们通过预赛。此时,我有以下几点:

$pattern = '/ [0-9]{1}\.[0-9]{2}/';  
$result = preg_match($pattern, $feed, $matches);
这很好,但我需要更精确的赛前比赛,我没有找到解决办法。 通过这种模式,可以找到像1.556这样的数字。我不想要这个,我的数字长度是4个字符。包括在内

另外,在这里,我无法捕捉到以a开头的数字,只有一个空格。我该怎么做

$result = preg_match($pattern, 'test 1.556 red @1.62 blue 2.33 ?', $matches);  

这里需要的结果是1.62和2.33,如果你想让它达到4的精度,那么@被捕获就是你所需要的

$pattern = '/ @*([0-9]{1}\.[0-9]{2})\b /'; 

如果你想让它达到4的精度,并且能捕捉到@,这就是你所需要的

$pattern = '/ @*([0-9]{1}\.[0-9]{2})\b /'; 

如果你想让它达到4的精度,并且能捕捉到@,这就是你所需要的

$pattern = '/ @*([0-9]{1}\.[0-9]{2})\b /'; 

如果你想让它达到4的精度,并且能捕捉到@,这就是你所需要的

$pattern = '/ @*([0-9]{1}\.[0-9]{2})\b /'; 

作为正则表达式的替代,PHP--:

结果:

array(3) {
  [1]=>
  float(1.556)
  [3]=>
  float(1.62)
  [5]=>
  float(2.33)
}

作为正则表达式的替代,PHP--:

结果:

array(3) {
  [1]=>
  float(1.556)
  [3]=>
  float(1.62)
  [5]=>
  float(2.33)
}

作为正则表达式的替代,PHP--:

结果:

array(3) {
  [1]=>
  float(1.556)
  [3]=>
  float(1.62)
  [5]=>
  float(2.33)
}

作为正则表达式的替代,PHP--:

结果:

array(3) {
  [1]=>
  float(1.556)
  [3]=>
  float(1.62)
  [5]=>
  float(2.33)
}

以下模式将以
。##
格式匹配所有数字,并带有可选的前导空格或at符号

[ @]?(\d{1}\.\d{2})\b

演示:

以下模式将以
###
格式匹配所有数字,并带有可选的前导空格或at标志

[ @]?(\d{1}\.\d{2})\b

演示:

以下模式将以
###
格式匹配所有数字,并带有可选的前导空格或at标志

[ @]?(\d{1}\.\d{2})\b

演示:

以下模式将以
###
格式匹配所有数字,并带有可选的前导空格或at标志

[ @]?(\d{1}\.\d{2})\b


演示:

添加所需的数字范围。对于最小2位和最大3位浮点数字,请使用
[0-9]{2,3}
?@PeeHaa如果您想将其作为答案发布,我将接受。添加您想要的数字范围。对于最小2位和最大3位浮点数字,请使用
[0-9]{2,3}
?@PeeHaa如果您想将其作为答案发布,我将接受。添加您想要的数字范围。对于最小2位和最大3位浮点数字,请使用
[0-9]{2,3}
?@PeeHaa如果您想将其作为答案发布,我将接受。添加您想要的数字范围。对于最小2位和最大3位浮点数字,请使用
[0-9]{2,3}
?@PeeHaa如果您想将其作为答案发布,我将接受它。$pattern='/*[0-9]{1}\.[0-9]{2,4}/'$结果=预匹配($pattern,“test 1.556 red@1.55 blue 2.33?”,$matches);var_dump($matches);你得到了我不想要的结果。是的,我编辑了第一篇文章,最后做了一些解释。试试看@*([0-9]{1}\[0-9]{2})\b:)/[0-9]{1}\[0-9]{2}\b/”是好的。我们也错过了使用preg_match_all。试着用这句话:
code
'test1.556 red@1.65 blue 5.22 on 4.32@5.12?code我明白了,我想你想要的是前面有@的数字,我很高兴你找到了解决方案$pattern='/*[0-9]{1}\[0-9]{2,4}/$结果=预匹配($pattern,“test 1.556 red@1.55 blue 2.33?”,$matches);var_dump($matches);你得到了我不想要的结果。是的,我编辑了第一篇文章,最后做了一些解释。试试看@*([0-9]{1}\[0-9]{2})\b:)/[0-9]{1}\[0-9]{2}\b/”是好的。我们也错过了使用preg_match_all。试着用这句话:
code
'test1.556 red@1.65 blue 5.22 on 4.32@5.12?code我明白了,我想你想要的是前面有@的数字,我很高兴你找到了解决方案$pattern='/*[0-9]{1}\[0-9]{2,4}/$结果=预匹配($pattern,“test 1.556 red@1.55 blue 2.33?”,$matches);var_dump($matches);你得到了我不想要的结果。是的,我编辑了第一篇文章,最后做了一些解释。试试看@*([0-9]{1}\[0-9]{2})\b:)/[0-9]{1}\[0-9]{2}\b/”是好的。我们也错过了使用preg_match_all。试着用这句话:
code
'test1.556 red@1.65 blue 5.22 on 4.32@5.12?code我明白了,我想你想要的是前面有@的数字,我很高兴你找到了解决方案$pattern='/*[0-9]{1}\[0-9]{2,4}/$结果=预匹配($pattern,“test 1.556 red@1.55 blue 2.33?”,$matches);var_dump($matches);你得到了我不想要的结果。是的,我编辑了第一篇文章,最后做了一些解释。试试看@*([0-9]{1}\[0-9]{2})\b:)/[0-9]{1}\[0-9]{2}\b/”是好的。我们也错过了使用preg_match_all。试着用这句话:
code
'test 1.556 red@1.65 blue 5.22 on 4.32@5.12?code我明白了,我想你想要的是前面带@的数字,不管怎样,我很高兴你发现这个解决方案太复杂了,我想。。顺便说一句,感谢您的参与。是的,但是过滤器比您的(定义的)正则表达式更灵活。浮点过滤器不关心数字计数,只对有效的浮点进行消毒,您的正则表达式不会匹配任何可能的浮点定义(正数或负数、普通或科学拼写)。无论如何,这是一个替代方案,正则表达式在大文本上速度更快,应该优先使用。祝你好运,我觉得太复杂了。。顺便说一句,感谢您的参与。是的,但是过滤器比您的(定义的)正则表达式更灵活。浮点过滤器不关心数字计数,只对有效的浮点进行消毒,您的正则表达式不会匹配任何可能的浮点定义(正数或负数、普通或科学拼写)。无论如何,这是一个替代方案,正则表达式在大文本上速度更快,应该优先使用。祝你好运,我觉得太复杂了。。顺便说一句,感谢您的参与。是的,但是过滤器比您的(定义的)正则表达式更灵活。浮点过滤器不关心数字计数,只对有效的浮点进行消毒,您的正则表达式不会匹配任何可能的浮点定义(正数或负数、普通或科学拼写)。无论如何,这是另一种选择,雷格