检查字符串中是不是有 5 位数字

Posted

技术标签:

【中文标题】检查字符串中是不是有 5 位数字【英文标题】:check if 5 digit number is available in a string检查字符串中是否有 5 位数字 【发布时间】:2012-08-16 03:35:45 【问题描述】:
$st1='dsdsdsd 97537 sdsdd dsddd';
$st2='fdsf 23e  sdsd 434  432443454';
$st3='fdf97537 ds344dsddd';

我想检查字符串中是否有 5 位数字。

st1-- 有 5 位数字

st2---不是

st3-- 有 5 位数字

【问题讨论】:

如果找到一个以上的五位数怎么办? 只能有一个或多个5位数字 【参考方案1】:

一个简单的正则表达式就可以完成这项工作。

preg_match('/\d5/', $input)

另见http://www.php.net/preg_match

【讨论】:

字边界不匹配fdf97537 @sachleen 我刚刚注意到并删除了我的评论 - 在下面添加了一个有效答案。【参考方案2】:

preg_match()preg_match_all() 试试这个正则表达式

preg_match("/\b[^\d]*\d5[^\d]*\b/", $str);

【讨论】:

【参考方案3】:

假设每个要检查的元素是否为五位数字,在字符串中用空格分隔。因此,您可以使用explode 函数将字符串转换为子字符串数组。接下来,您可以使用is_numeric 函数来检查它是否是数字,并检查该子字符串是否为五长。你也可以使用正则表达式。

这里的 RegEx 要好得多。当我看到@Matt 的答案满足这些要求时,我的 cmets 将是不必要的。

【讨论】:

正则表达式是这里的方法。 explode() 结合字符串长度检查太重了。

以上是关于检查字符串中是不是有 5 位数字的主要内容,如果未能解决你的问题,请参考以下文章

有没有更好的选择来检查子字符串是不是为数字?

NSPredicate 检查以逗号分隔的一串数字是不是包含数字

5位ID生成方案

检查字符串是不是仅包含数字

检查字符串是不是为整数

检查字符串是不是可以在 NX Knowledge Fusion 中转换为数字类型