Portál AbcLinuxu, 11. května 2025 10:27
Jak v PHPku v eregi_replace, nebo jiné funkci pro regulérní výrazy zadám, že má nahrazovat pouze pokud je sudý počet určitých znaků.
Konkrétně potřebuju pracovat s textem, který je rozdělen do řádků a řádky do elementů pomocí znaku ;
Jenomže jak znak konce řádků, tak ;
může být součástí textu a to že to tak není se pozná podle toho jestli je před \r\n
a ;
nula, nebo sudý počet \
.
\(..\)*
nestačí?
Bez jakých lomítek?
Mám takový textový soubor:
toto ma byt na jedne \ radce a toto taky \\ toto má být na další řádceZkoušel jsem vymyslet něco takového:
<?php $h=fopen("text.txt","r"); $text=fread($h,filesize("text.txt")); fclose($h); $pole=spliti("((\\\\\\\\)*\n)",$text); array_pop($pole); print_r($pole); echo "<hr>"; $pole=preg_split("/(\\\\\\\\)*\n/",$text); array_pop($pole); print_r($pole); ?>Jenomže obojí mi text vypíše jako
Array ( [0] => toto ma byt na jedne \ [1] => radce [2] => a toto taky [3] => toto ma byt na dalsi radce ) Array ( [0] => toto ma byt na jedne \ [1] => radce [2] => a toto taky [3] => toto ma byt na dalsi radce )Místo:
Array ( [0] => toto ma byt na jedne \ radce [1] => a toto taky [2] => toto ma byt na dalsi radce ) Array ( [0] => toto ma byt na jedne \ radce [1] => a toto taky [2] => toto ma byt na dalsi radce )Kde dělám chybu? Proč mi to rozdělí ten text po tom lomítku v [0]? Předem děkuji za vaše odpovědi.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.