| 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: 13 let
|
|||
0