2016-10-18 18 views
2

ランダムなデータを生成するWebスクレイプを実行しています。preg_replaceの2番目のインスタンスを無視します。

ランダムなデータ形式から文字列は、私はレストランを削除し、タイトルを保つためにpreg_replaceを持っているRestaurantJimmys Outdoor Grill

です。

名前がRestaurantSmith Family Restaurantときしかし、それは2番目のインスタンスを維持するための最善の解決策は何Smith Family

に変身?

コード:事前に

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

ありがとう!

+1

* Restaurant *の最初のインスタンスは、スペース**のない次の文字列**と常に連結されていますか? –

+0

@RaxWeberそれは正しいです。 – hinteractive02

+0

削除する必要がある文字列の_beginning_に 'Restaurant'が発生していますか? –

答えて

2

私は働き、この2つの方法を試してみました:

$str = "RestaurantSmith Family Restaurant"; 

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

と:

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

ありがとうございました!それは有り難いです! – hinteractive02

+0

そして、最初のレストランに後にスペースがあればどうなりますか? = P –

+0

@MarcelJacquesMachado明らかに、OPはそれの後にスペースがないと言いました。 –

2

これを試してみて、このことができますかどうかを確認:実際に

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

  • uをUTF-8のテキストのために。
+0

残念ながら、私は 'RestaurantSmith Family'の出力を得ています。 – hinteractive02

+0

ohh、私を見てみましょう – pradeep1991singh

+1

@hinklea今それは動作するはずです:) – pradeep1991singh

0

それともあなたがそれを行うことができます。

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

^を示すために使用されているがテキストの始まり。だからレストランの最初の出現だけが置き換えられます。

+0

レストランが文字列の先頭にない場合はどうなりますか?その後、それは動作しません。 –

+0

どこですか? –

関連する問題