检查字符串中是不是有 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 位数字的主要内容,如果未能解决你的问题,请参考以下文章