我尝试了很多preg_replace和preg_match代码,但我不能这样做。 我试着找到包含+ 18,18 +或(+18)的字符串 我无法解释,但你可以在看到我的代码时理解。
//inputs
$product='example: 18 kg apple'; // my hope output: EVERYONE
$product='water pipe (18) meters'; // my hope output: EVERYONE
//outputs: OVER 18
$product='product +18 dress'; // my hope output: OVER 18
$product='product 18+ dress'; // my hope output: OVER 18
$product='product (+18) dress'; // my hope output: OVER 18
//outputs are already OVER 18
//Because of contain 18
//not +18 or 18+. it doesnt work truly
preg_match('/\b(\w*18\w*)\b/', $product, $match);
if( $match[1]=='+18' || $match[1]=='18+' ) {
echo "OVER 18<br>";
}
else{
echo "EVERYONE<br>";
}
答案 0 :(得分:1)
使用此:(\+18|18\+)
- 它会检查字符串中是否存在+18
或18+
。
这样的事情:
preg_match('(\+18|18\+)', $product, $match);
应该有用。
仅在此处测试https://regex101.com/(一个测试正则表达式的好地方
答案 1 :(得分:0)
在这个简单的例子中,我不会使用正则表达式。只需使用strpos
也可以完成这项工作。
if (strpos($product, '18+') !== false || strpos($product, '+18') !== false) {
// over 18
}