Autor | Zpráva | ||
---|---|---|---|
Joseph7 Profil * |
#1 · Zasláno: 28. 2. 2013, 09:24:43
zdravim
ako pomocou regex_replace prehodim slovoA za slovoB oddelene vzdy @ (okolo @ je medzera z lavej aj pravej strany) z tohoto slovoA @ slovoB chcem toto slovoB @ slovoA |
||
Kcko Profil |
#2 · Zasláno: 28. 2. 2013, 09:30:06
Joseph7:
http://www.phpliveregex.com/p/6R |
||
Joker Profil |
Joseph7:
No… Definujete funkci regex_replace, která to udělá. I když teda regex_replace je velmi nevhodné jméno, když nechcete nahrazovat v řetězci a použít na tohle regulární výrazy je nesmysl. Mohlo by to vypadat nějak takhle: /* Prohodí navzájem dvě části textu oddělené separátorem. Když v textu separátor není, vrátí původní text. */ function prohodit($separator, $text) { $casti = explode($separator, $text, 2); return (count($casti > 1)) ? ($casti[1] . $separator . $casti[0]) : $text; } |
||
peta Profil |
$str = str_replace(" slovoA @ slovoB "," slovoB @ slovoA ",$str); regex_replace se v novem php pozazuje za zastarale, nahrazuje se preg_replace. |
||
Joseph7 Profil * |
#5 · Zasláno: 28. 2. 2013, 10:02:01
diky a nevies ako by to malo vyzerat v php smarty?
regex_replace:'(regularny vyraz sucasny)':'(regularny vyraz ktory chcem)' |
||
donny Profil |
regex_replace má rovnaký syntax pre "pattern" ako preg_replace, preto si myslím že si v podstate dostal odpoveď od Kcka, teraz už si len správne doplniť jeho pattern do funkcie!
Preg replace tam vyzeralo takto.. preg_replace("/([^@]+) @ (.+)/", "", $input_lines); PS1: nabudúce by bolo fajn upresniť že sa jedná o modifikator premenných v smarty, pretože nie každý pracuje zo smarty.. PS2: http://www.smarty.net/docs/en/language.modifier.regex.replace.tpl, v samotnom manuály to oporúčajú robiť radšej v php, podobne ako ti radili Joker, alebo Peta |
||
Joseph7 Profil * |
#7 · Zasláno: 28. 2. 2013, 10:16:39
takze asi takto
regex_replace:'/([^@]+) @ (.+)/':'$2 - $1' |
||
Časová prodleva: 11 let
|
0