我已存储为
|1|7|11|
。
我需要使用
preg_match((
来检查 |7|
是否存在或 |11|
是否存在等
我该怎么做?
在表达式前后使用
\b
仅将其作为整个单词进行匹配:
$str1 = 'foo bar'; // has matches (foo, bar)
$str2 = 'barman foobar'; // no matches
$test1 = preg_match('/\b(foo|bar)\b/', $str1);
$test2 = preg_match('/\b(foo|bar)\b/', $str2);
var_dump($test1); // 1
var_dump($test2); // 0
所以在你的例子中,它将是:
$str1 = '|1|77|111|'; // has matches (1)
$str2 = '|01|77|111|'; // no matches
$test1 = preg_match('/\b(1|7|11)\b/', $str1);
$test2 = preg_match('/\b(1|7|11)\b/', $str2);
var_dump($test1); // 1
var_dump($test2); // 0
假设您的字符串始终以
|
: 开头和结尾
strpos($string, '|'.$number.'|'));
如果你真的想使用
preg_match
(尽管我推荐strpos
,就像Xeoncross的答案),请使用这个:
if (preg_match('/\|(7|11)\|/', $string))
{
//found
}