3

私はこの文字列を得ました:

スター・ウォーズ 旧共和国旧共和国

明らかなことを太字で示しました。古い共和国は重複しており、それを取り除く必要があります。

このようなpreg_replaceを試して、The the ... のように相互に続く重複パターンを検出しましたが、The Old Republic のようなより長い反復パターンを取り除くことができませんでした。

 $str = $game_title;
    $pattern = "/\b([\w'-]+)(\s+\\1)+/i";
    $replacement = "$1";
    print preg_replace($pattern, $replacement, $str) ."<br>";
4

1 に答える 1

2

これを試して

$str = 'Star Wars The Old Republic The Old Republic';
echo $str = implode(' ',array_unique(explode(' ', $str)));

これにより、 Star Wars The Old Republicが提供され、文字列から重複が削除されます。

于 2013-03-09T11:53:29.850 に答える