在PHP中匹配模式

时间:2013-08-08 04:28:10

标签: php regex preg-match

我正在尝试验证字符串是否包含并以BA700开头。我尝试在PHP中使用preg_match()函数,但我没有运气。我的代码如下:

preg_match('/^[0-9]{3}-[0-9]{4}-[0-9]{4}$/', $search))

不幸的是,这不起作用。有什么想法吗?

更新代码:

$needle = 'BA700';
$haystack = 'BA70012345';

if (stripos($haystack, $needle)) {
    echo 'Found!';
}

这对我不起作用

3 个答案:

答案 0 :(得分:0)

尝试substr喜欢

$needle = 'BA700';
$haystack = 'BA70012345';
if(substr($haystack, 0, 4) == $needle) {
    echo "Valid";
} else {
    echo "In Valid";
}

您还可以通过更改UPPERLOWER中的两者来检查案例的问题

if(strtoupper(substr($haystack, 0, 4)) == $needle) {
    echo "Valid";
} else {
    echo "In Valid";
}

答案 1 :(得分:0)

以下是正确使用stripos的方法

if (stripos($haystack, $needle) !== false) {
    echo 'Found!';
}

答案 2 :(得分:0)

也许我的字面意思太过分了,但是:

if (strncmp($string, 'BA700', 5) === 0) {
    // Contains and begins with 'BA700'
}

如果BA700不区分大小写,那么:

if (strncasecmp($string, 'ba700', 5) === 0) {
    // Contains and begins with 'ba700'
}

不应该有更多的东西。

正如你想知道的那样,正则表达式是:

if (preg_match('/^BA700/', $string) === 1) {
    // Contains and begins with 'ba700'
}