Autor | Zpráva | ||
---|---|---|---|
Javař Profil * |
Dobrý den,
potřeboval bych poradit s věcí ohledně regulérních výrazů. Trochu se v nich vyznám, ale na toto nestačím. Mám následující řetězec: * [[1848]] – [[Karl Marx|Karel Marx]] a [[Bedřich Engels]] publikovali manifest Komunistické strany. A chci se zbavit části [[Karl Marx| [[Karl Marx|Karel Marx]] problém je, že používám následující echo ereg_replace("\[.\|", "", $string); a výsledkem je * Karel Marx]] a [[Bedřich Engels]] publikovali manifest Komunistické strany. Moderátor Joker: Regulérně se to jmenuje regulární výraz. Zpřesnil jsem titulek, vláken pojmenovaných "regulární výraz" nebo "regulární výrazy" je tu tuna.
|
||
Majkl578 Profil |
#2 · Zasláno: 19. 2. 2010, 23:37:46 · Upravil/a: Majkl578
echo preg_replace('~\[\[[^\[]+\|([^\]]+)\]\]~', '[[\\1]]', '* [[1848]] – [[Karl Marx|Karel Marx]] a [[Bedřich Engels]] publikovali manifest Komunistické strany.'); |
||
Javař Profil * |
#3 · Zasláno: 19. 2. 2010, 23:45:45
Děkuji moc!
Nemohl bys mi to prosím nějak rozepsat poo krocích, proč je to zrovna takhle? |
||
Majkl578 Profil |
#4 · Zasláno: 19. 2. 2010, 23:54:42
\[\[ - úvodní [[
[^\[]+ - vše kromě [ \| - oddělovač | ([^\]]+) - vše kromě ], zachytit obsah \]\] - koncové ]] [[\\1]] - \\1 je zachycený obsah |
||
Časová prodleva: 14 let
|
0