为什么这个正则表达式不能很好地工作

问题描述 投票:0回答:2

我尝试制作一个函数,如果字符串遵循特定模式,则该函数返回true

这里是PHP代码

<?php


function patternn($p) 
{
  $p="%".$p."%";
  return $p;
}

function like_match($pattern, $subject)
{
    $pattern = str_replace('%', '.*', preg_quote($pattern, '/'));
    $result=preg_match("/^{$pattern}$/i", $subject);  
    return $result;
}



$name="144";
$keywordd="14";

$pa=patternn($name);

$ch=like_match($pa,$keywordd);

echo $ch;
?>

当$ name = 144并且$ keywordd为144或在144之前和之后返回true的任何值时但是我想让函数在$ keywordd为14或44时返回true。

我尝试制作一个函数,如果字符串遵循某种模式,则返回true,这里是PHP代码

php regex preg-match str-replace
2个回答
1
投票

为什么不使用strpos进行简单匹配?


0
投票

您的RegExp模式还可以。您正在$name(144)中搜索返回0的$keywordd(14)。为了成功,$name应该是$keyword的子集。

© www.soinside.com 2019 - 2024. All rights reserved.