<?php
$flag=true;
if(isset($_POST['sub'])){
if(isset($_POST['text'])){
$a=$_POST["text"];
} else {
$a='';
}
if(!empty($_POST['msg'])){
$b=$_POST['msg'];
$c=strlen($b);}
if(isset($_POST['wrd'])){
$d=($_POST["wrd"]);
} else {
$d='';
}
if(preg_match("[\w\s.,a-zA-Z$a,\.]",$b)){
$flag=false;
}
if($flag){
$i;
for($i=0;$i<=$c;$i++)
{
$newtext = str_replace($a,$d,$b);
echo $newtext;
echo "</br>";
break;
}
} else {
echo"not found ";}
}
?>
这是我的代码我想从原始段落匹配单词(段落),但问题是这个。
在一行中,(段落)一词写得像(段落)和(段落)。
这就是为什么preg_match
无法找到这两个词的原因,preg_replace
也同样如此。
答案 0 :(得分:1)
这是不正确的:
if(preg_match("[\w\s.,a-zA-Z$a,\.]",$b))
正则表达式需要开始和结束分隔符。它应该是:
if(preg_match("/[\w\s.,a-zA-Z$a,\.]/", $b))
另请注意您的正则表达式也不正确。我可以看到一些错误(我的意思更多):
\w
表示单词字符,因此您不需要单独的a-zA-Z