我需要能够在字符串中搜索,找出[topic]是否等于一个数字,并仅从字符串中获取该数字。
例如,类似这样的字符串:
[topic]=10[board]=1
应返回10
但是像这样的字符串:
[topic][board]=1
应返回0或错误
像这样的字符串:
[topic]=1.5[board]=2
应该返回1,因为我们需要四舍五入floor()
此外,我们不担心负数,因为这永远不会发生。
只有当[topic]
存在于字符串中并用等号定义时,我才能做到这一点,只从这些看起来像这样的字符串类型中获取数字,向下取整。
谢谢大家:)
下面的想法使用preg_match
和一个正则表达式,该表达式在方括号内查找单词"topic",后面跟着一个等号和一个或多个数字。在匹配之前,我设置了主题的默认值(在本例中为false
)。如果找到一个主题,我会将其转换为一个整数。
这将忽略小数点,并且后面作为d
的任何数字都只包含数字0到9。
示例:
<?php
$string = '[topic]=10[board]=1';
$topic = false;
if (preg_match('/[topic]=(?P<topic>d+)/', $string, $matches)) {
$topic = (int)$matches['topic'];
}
var_dump($topic);