php - preg_replace 如果结果替换或不替换。仅显示替换的文本,否则为空白
问题描述
我想得到 preg_replace 如果替换则显示结果,否则为空白
<?php
$text = "text4 text1 text2 text3";
$replace = [
'/\btext1\b/' => 'replace1', //replace case sensitive
'/\btext2\b/i' => 'replace2', //non-sensitive
'/\b(text3|text4)\b/i' => 'replace3', //replace both text3 and text4
];
$result = preg_replace(array_keys($replace), $replace, $text);
echo $result;
结果 = 替换 3 替换 1 替换 2 替换 3
和
<?php
$text = "text4x text1x text2x text3x";
$replace = [
'/\btext1\b/' => 'replace1', //replace case sensitive
'/\btext2\b/i' => 'replace2', //non-sensitive
'/\b(text3|text4)\b/i' => 'replace3', //replace both text3 and text4
];
$result = preg_replace(array_keys($replace), $replace, $text);
echo $result;
结果 = text4x text1x text2x text3x
如果不替换任何内容,则显示原始 $text ,如果任何单词不替换,我想显示空白结果
解决方案
您可以使用 strcmp 来比较字符串。
strcmp($文本,$结果); // 如果字符串相同,则返回 0
$compare = strcmp($text,$result);
if($compare == 0){ echo $text; }
else { echo 'Result not found'; }
推荐阅读
- javascript - 我必须单击两次才能使用 Sortable.init() 初始化排序表
- python - 如何在多个文件上使用“导入”
- regex - 删除前缀和后缀并留下中间字符串
- stripe-payments - 条纹 webhook 混淆
- amazon-web-services - AWS Data Pipeline Dynamo 到 Redshift
- dart - 为什么“window.sessionStorage['foo'] ??='test'”在 Dart 中不起作用?
- mongodb - MongoDb - 授予用户访问特定数据库的权限
- javascript - 单击时如何更改按钮类?
- android - 推送消息时ios中的全局通知
- algorithm - Haskell NB:'Edge' 是一个非内射类型族