regularny vyraz

Programovacie jazyky, rady, poradňa...
sharky-no
King
King
Používateľov profilový obrázok
Príspevky: 1681
Registrovaný: 31 okt 2006, 19:53

regularny vyraz

Príspevok od používateľa sharky-no »

nemam rad regularne vyrazy a verim, ze niekto to tu zvladne behom par sekund :lol: k+ ista

k veci, potrebujem v databaze zmenit url adresy obrazkov http://daco.sk/images/obrazok.jpg na http://daco.sk/images/archive/obrazok.jpg (tych typov obrazkov je viac, nie len jpgecka)

Problem je vsak ten, ze chcem len zmenit adresu len pre obrazky v korenovom adresari... existuju este aj adresy http://daco.sk/images/kategoria/obrazok.jpg no tych sa nechcem dotknut. (kategoria je wildcard, meni sa to na selico mozne :) )

Je to jednorazove riesenie, preto mi je jedno ako skarede to bude a ako dlho to bude trvat. ak sa to da aj SQL tak prijmem aj to.
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: regularny vyraz

Príspevok od používateľa BX »

Takže toto

Kód: Vybrať všetko

http://daco.sk/images/obrazok.jpg
vytiahneš ako

Kód: Vybrať všetko

^http://daco.sk/images/(([^/]+?)\.(jpg|png))$
, z toho vytiahneš názov obrázka a môžeš ho pripojiť k novej ceste. Snáď by to malo stačiť.
sharky-no
King
King
Používateľov profilový obrázok
Príspevky: 1681
Registrovaný: 31 okt 2006, 19:53

Re: regularny vyraz

Príspevok od používateľa sharky-no »

dakujem! :)

len sa bojim toho jpg|png... neviem ci tam nebudu aj nejake JPEG alebo podobne srandy.. tych URL sa prepise 2000 tazko sa mi to bude hladat ze ci to prebehlo v poriadku, potrebujem istotu..

nenapada ta ako to obist?
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: regularny vyraz

Príspevok od používateľa BX »

No môžeš si tam tým znakom "alebo" oddeliť koľko prípon chceš, takče niečo ako jpg|jpeg|png|gif|tiff...
Alebo to napíš takto

Kód: Vybrať všetko

^http://daco.sk/images/(([^/]+?)\.\w+)$
, ale to ti prepíše akúkoľvek príponu, ktorá sa skladá z písmen, nech je aj akokoľvek dlhá.
sharky-no
King
King
Používateľov profilový obrázok
Príspevky: 1681
Registrovaný: 31 okt 2006, 19:53

Re: regularny vyraz

Príspevok od používateľa sharky-no »

vyborne :) ten druhy regex sa mi viac hodil do preg_replace, dik!
Boccaccio
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1097
Registrovaný: 01 mar 2014, 14:00
Bydlisko: Bratislava

Re: regularny vyraz

Príspevok od používateľa Boccaccio »

co znamena prosim ta [^/] ?
*****HERO*****
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2446
Registrovaný: 08 máj 2006, 1:34

Re: regularny vyraz

Príspevok od používateľa *****HERO***** »

šetko okrem lomitka
Michaelo
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 6177
Registrovaný: 16 júl 2008, 20:29
Bydlisko: Pri PC
Kontaktovať používateľa:

Re: regularny vyraz

Príspevok od používateľa Michaelo »

Ehm, tiez castejsie pouzivam regularne vyrazy no furt som z nich trochu debil.

Nema niekto nejaky navod od zakladov? Nieco ako regex for idiots :D

Pretoze sice som napisal toto:

Kód: Vybrať všetko

#.*?(<a href=(\'|"|)mailto:.+?</a>).*?#is
No furt som trochu zmateny.

Napr niekedy sa zacina prave # a niekedy len / atd.
PHP mi ide, SQL tiez trochu ovladam ale regex? 'Ni panovi (viem nejake zaklady, ale ked uz ide k spraveni niecoho zlozitejsieho, meh)...

Ď.
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: regularny vyraz

Príspevok od používateľa BX »

Michaelo, ja som sa reg. výrazy naučil v podstate tu http://www.linuxsoft.cz/article.php?id_article=947 pri učení perlu a trochu viac "vhľadu" mi do toho dali automaty a gramatiky v škole.
Michaelo napísal:Napr niekedy sa zacina prave # a niekedy len / atd.
V preg_* funkciách v php je prvý znak "oddelovač", ktorý slúži ako hranica regulárneho výrazu. A môže to by akýkoľvek ne-alfanumerický znak a backslash. Takže kľudne aj

Kód: Vybrať všetko

preg_match( "!\w+!", $a, $m );
Ja používam #, pretože tak nemusím eskejpovať lomítko, ktoré v php regexoch používam dosť často (typicky html tagy, odkazy apod.).
Napísať odpoveď