Autor | Zpráva | ||
---|---|---|---|
sniclman Profil * |
#1 · Zasláno: 20. 10. 2011, 13:13:18
Dobrý den,
mám následující script: $string = "Počáteční text www.jakpsatweb.cz text uprostřed www.google.com konec věty."; $string = preg_replace('|(www)\.(.*)\.(.*)( )|U','#1($1) #2($2) #3($3) #4($4)',$string); výstup: Počáteční text #1(www) #2(jakpsatweb) #3(cz) #4( )text uprostřed #1(www) #2(google) #3(com) #4( )konec věty. $string = "Počáteční text www.jakpsatweb.cz text uprostřed www.google.com" výstup:Počáteční text #1(www) #2(jakpsatweb) #3(cz) #4( )text uprostřed www.google.com a mám problém s vyhledáním řetězce. V příkladu funguje vše v pořádku. Problém nastává pokud není adresa www.něco.něco ukončena mezerou. Pokoušel jsem upravit script na: $string = preg_replace('|(www)\.(.*)\.([^ ]*)(|U','#1($1) #2($2) #3($3) #4($4)',$string); Ale bohužel výstup byl špatný Počáteční text #1(www) #2(jakpsatweb) #3() #4()cz text uprostřed #1(www) #2(google) #3() #4()com konec věty. Můžete mi prosím poradit jak správně zapsat podmínku pro vyhledání řetece tak aby poslední řetězec (doména) nesměl obsahovat mezeru a libovolný počet znaků? Děkuji předem za veškeré rady. |
||
Joker Profil |
#2 · Zasláno: 20. 10. 2011, 13:35:33
sniclman:
Jestli jsem tomu porozuměl (s čímž jsem teda měl problém, například stále nechápu kde je jaký konec slova jak je to v titulku), asi by stačilo místo * použít +. V použití hvězdičky stejně nevidím moc smysl, resp. opravdu má projít třeba: „www..“ jako adresa? Ještě poznamenám, že na obecnou adresu tohle nemusí fungovat, protože adresa obecně nemusí mít 3 úrovně domén a doména 3. řádu se nemusí jmenovat „www“. |
||
sniclman Profil * |
#3 · Zasláno: 20. 10. 2011, 14:13:46
Joker:
vyřešeno. echo preg_replace('|(www)\.(.*)\.([^ ]++)|U','#1($1) #2($2) #3($3) #4($4)',$string); děkuju za nápovědu použít "+" Uznávám, že výše zmíněný problém jsem mocdobře nedefinoval. resp. opravdu má projít třeba: „www..“ jako adresa? Je to systém pro uživatele. Domény 3 řádu používám, "www" ze zvyku už ani nepíšu. |
||
Časová prodleva: 13 let
|
0