Matcha samma ord

PHP

2 svar · 312 visningar · startad av Storsmurfen

Medlem sedan juli 20059 inlägg
Trådstart#1

Hejsan!

Jag vill plocka bort eventuella dubletter av första ordet i en sträng.

min börja:

echo preg_replace("/^([^ ]+)([ ].*)(.+)$/i", "$1$2$3", "CLUB hepp CLUB bla haha");

kan man inte använda $1 eller något annat i sin pattern för att matcha första parantesen?

här vill jag plocka bort det andra CLUB ordet.
några tips?

Medlem sedan mars 2003429 inlägg
#2

Min lösning skulle vara att göra en loop ifall strpos() och strripos() gav olika värden skulle jag plocka bort alla "club" efter det första med hjälp av substr()
(Kräver PHP5)

Kass lösning till PHP 4 men den funkar vore att plocka bort allt fram till efter första club (som man hitta med strpos()) sedan gör man en ny sökning, finns det några då, då plockar man bort de med substr()

Medlem sedan juli 20059 inlägg
#3

Jag gjorde som så att jag för matchade första order med preg_match och sen tog jag bort det med preg_replace.

$string "...";
$match = array();
preg_match("/^([^ ]+)/is", $string, $word_match);

$string = preg_replace("/^".$match[1]."([ ].*)".$match[1]."(.*)$/is",$match[1]."$1$2", $string);
255 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)