webForumDet fria alternativet

Matcha samma ord

PHPur PHP

2 svar · 302 visningar · startad av Storsmurfen

Medlem sedan juli 20059 inlägg
Frågan#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);
267 ms totalt · 3 externa anrop · v20260731065814-full.55e59744
141 ms — hämta forumlista (db)
122 ms — hämta statistik (db)
137 ms — hämta tråd, inlägg och bilagor (db)