Php 在3个数字上用点进行预匹配
我有这样的数字: 1.80Php 在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开头的数字,只有一个空格。我该
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我明白了,我想你想要的是前面带@的数字,不管怎样,我很高兴你发现这个解决方案太复杂了,我想。。顺便说一句,感谢您的参与。是的,但是过滤器比您的(定义的)正则表达式更灵活。浮点过滤器不关心数字计数,只对有效的浮点进行消毒,您的正则表达式不会匹配任何可能的浮点定义(正数或负数、普通或科学拼写)。无论如何,这是一个替代方案,正则表达式在大文本上速度更快,应该优先使用。祝你好运,我觉得太复杂了。。顺便说一句,感谢您的参与。是的,但是过滤器比您的(定义的)正则表达式更灵活。浮点过滤器不关心数字计数,只对有效的浮点进行消毒,您的正则表达式不会匹配任何可能的浮点定义(正数或负数、普通或科学拼写)。无论如何,这是一个替代方案,正则表达式在大文本上速度更快,应该优先使用。祝你好运,我觉得太复杂了。。顺便说一句,感谢您的参与。是的,但是过滤器比您的(定义的)正则表达式更灵活。浮点过滤器不关心数字计数,只对有效的浮点进行消毒,您的正则表达式不会匹配任何可能的浮点定义(正数或负数、普通或科学拼写)。无论如何,这是另一种选择,雷格