检查字符串是否包含特定数字

时间:2009-10-12 08:59:09

标签: php regex

我有一个字符串

8,7,13,14,16

确定该字符串中是否存在给定数字的最简单方法是什么?

$numberA = "13";
$string = "8,7,13,14,16";

if($string magic $numberA){
$result = "Yeah, that number is in there";
} else {
$result = "Sorry.";
}

寻找魔法。

5 个答案:

答案 0 :(得分:20)

<?php 
in_array('13', explode(',', '8,7,13,14,16'));
?>

...将返回字符串中是否有“13”。

只是详细说明:在这种情况下,explode将字符串转换为数组,将其拆分为每个','。然后,in_array检查字符串'13'是否在某个结果数组中。

答案 1 :(得分:4)

另一种方式,对于laaaaaaaarge字符串来说可能更有效,就是使用正则表达式:

$numberA = "13";
$string = "8,7,13,14,16";

if(preg_match('/(^|,)'.$numberA.'($|,)/', $string)){
    $result = "Yeah, that number is in there";
} else {
    $result = "Sorry.";
}

答案 2 :(得分:3)

if (strpos(','.$string.',' , ','.$numberA.',') !== FALSE) {
    //found
}

警告','字符,他们将帮助处理'13'魔术'1,2,133'案件。

答案 3 :(得分:1)

确保匹配字符串中的完整数字,而不仅仅是其中的一部分。

function numberInList($num, $list) {
    return preg_match("/\b$num\b/", $list);
}
$string = "8,7,13,14,16";    
numberInList(13, $string); # returns 1
numberInList(8, $string); # returns 1
numberInList(1, $string); # returns 0
numberInList(3, $string); # returns 0

答案 4 :(得分:-1)

如果您只是检查是否存在字符串,那么应该进行简单的字符串搜索。我不会说php,但我认为这是可以做到的。

$mystring = '8,7,13,14,16';
$findme   = '13';

if (preg_match('/(?>(^|[^0-9])'.$findme.'([^0-9]|$))/', $mystring)) {
    $result = "Yeah, that number is in there";
} else {
    $result = "Sorry.";
}