preg_match 有效,但 preg_replace 无效
preg_match works but preg_replace does not
我有一个带有 php (7.4.4) 的本地 xampp 版本,它从 mysql 数据库中获取文本并替换其中的特定文本。我是运行PHPStorm中的脚本作为“PHP脚本”手动调试。但是,它匹配,但不替换。我有一个小例子来检查:
$description = join(" ", $words);
if(preg_match("/\(\s*see\s*\)/", $description)) {
echo $result['id']." Matches\n";
}
preg_replace(["/\(from\s*\)/", "/\(\s*see\s*\)/"], "", $description);
if(preg_match("/,/", $etymologies)) {
echo "Word ". $result['kirundi0'] . " with id ". $result['id']. " has multiple etymologies and now description: " . $description. "\n";
}
所以,当我用这句话喂它时:“1.一个,单身,2.一些(带复数前缀),3.相同,(见)”
最后一部分应该被切断,因为它引用了我删除的内容。在控制台可以看到的日志是:
3164 Matches
Word -mwe with id 3164 has multiple etymologies and now description: 1. one, single, 2. some (with pl. prefix ), 3. same, (see )
所以它与 preg_match 匹配,但永远不会发生替换。我正在尝试使用 W3Schools preg_replace 示例的模式,即使在那里它也能正常工作。
regex101.com 也表示没有问题。文字不太长,对我来说应该没问题php.ini
实际上,我什至对这种行为感到困惑,因为我已经在另一个项目的同一台服务器上使用了 preg_replace,并且它运行得非常好。
你试过了吗?
$yourVar = preg_replace(["/\(from\s*\)/", "/\(\s*see\s*\)/"], "", $description);
根据文档preg_replace 参考无效。
我有一个带有 php (7.4.4) 的本地 xampp 版本,它从 mysql 数据库中获取文本并替换其中的特定文本。我是运行PHPStorm中的脚本作为“PHP脚本”手动调试。但是,它匹配,但不替换。我有一个小例子来检查:
$description = join(" ", $words);
if(preg_match("/\(\s*see\s*\)/", $description)) {
echo $result['id']." Matches\n";
}
preg_replace(["/\(from\s*\)/", "/\(\s*see\s*\)/"], "", $description);
if(preg_match("/,/", $etymologies)) {
echo "Word ". $result['kirundi0'] . " with id ". $result['id']. " has multiple etymologies and now description: " . $description. "\n";
}
所以,当我用这句话喂它时:“1.一个,单身,2.一些(带复数前缀),3.相同,(见)” 最后一部分应该被切断,因为它引用了我删除的内容。在控制台可以看到的日志是:
3164 Matches
Word -mwe with id 3164 has multiple etymologies and now description: 1. one, single, 2. some (with pl. prefix ), 3. same, (see )
所以它与 preg_match 匹配,但永远不会发生替换。我正在尝试使用 W3Schools preg_replace 示例的模式,即使在那里它也能正常工作。 regex101.com 也表示没有问题。文字不太长,对我来说应该没问题php.ini
实际上,我什至对这种行为感到困惑,因为我已经在另一个项目的同一台服务器上使用了 preg_replace,并且它运行得非常好。
你试过了吗?
$yourVar = preg_replace(["/\(from\s*\)/", "/\(\s*see\s*\)/"], "", $description);
根据文档preg_replace 参考无效。