忽略 preg_replace 的第二个实例

Ignoring second instance of preg_replace

我正在做一个生成随机数据的网络抓取。

随机数据格式的字符串是RestaurantJimmys Outdoor Grill

我有一个preg_replace删除餐厅并保留标题。

但是,当名称为 RestaurantSmith Family Restaurant 时,它会变成 Smith Family

保留二审的最佳解决方案是什么?

代码:

preg_replace('/Restaurant/', '', $restaurantName);

提前致谢!

试试这个,看看是否有帮助:

 <?php
 echo preg_replace('/Restaurant/u', '', "RestaurantSmith Family  Restaurant", 1);
 ?>

实际上,

  • u 用于 UTF-8 文本。

我已经尝试了两种有效的方法:

$str = "RestaurantSmith Family Restaurant";

echo preg_replace("/Restaurant(\w+)/", "", $str);

和:

echo preg_replace("/Restaurant\B/", "", $str);

或者你可以这样做:

$text = 'RestaurantSmith Family Restaurant';
$pattern = '/^Restaurant/';
$replacement = '';
echo preg_replace($pattern, $replacement, $text);

^用于表示正文的开始。所以只有第一次出现的 Restaurant 将被替换。