reg. vyraz

Programovacie jazyky, rady, poradňa...
gwixt
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3912
Registrovaný: 24 sep 2005, 16:50
Bydlisko: Trash-Can

reg. vyraz

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

priznam sa rovno ze s reg. vyrazmy moc nevychadzam tak sa obraciam sem

ako mam zapisat reg. vyraz v ktorom mam dvojicu spatnych lomitok ("//") v php/JS ?? tam mi to bere ako riadkovy komentar ...

napr. mam takyto vyraz: /.*\/.*\//

(nie je to moj kod, len sa snazim tam daco dorobit vylepsit a nasiel som tam taketo veci)
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

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

napr. #.*\/.*\/#
gwixt
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3912
Registrovaný: 24 sep 2005, 16:50
Bydlisko: Trash-Can

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

pojde to v JS?

edit: nejde
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

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

Tak budeš musieť použiť:

Kód: Vybrať všetko

var re = new RegExp(".*/.*/");
ehm123
King
King
Príspevky: 1658
Registrovaný: 27 feb 2006, 6:45
Bydlisko: PD / Praha

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

ja potrebujem nieco podobne,preto to pisem sem potrebujem

z adresy napr http://www.hojko.com/profile.php?mode=editprofile
spravit hojko.com dalo by sa?
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

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

warezman napísal:ja potrebujem nieco podobne,preto to pisem sem potrebujem

z adresy napr http://www.hojko.com/profile.php?mode=editprofile
spravit hojko.com dalo by sa?
Predpokladám, že to chceš pre php. Neviem, ako veľmi zložité to chceš (teda aké url to má akceptovať).

Kód: Vybrať všetko

<?php

function get_hostname($url)
{
        preg_match("/^(http:\/\/)?(www\.|)([^\/]+)/i", $url, $matches);
        return $matches[3];
}


	echo get_hostname("http://hojko.com/profile.php?mode=editprofile"), "<br>";
	echo get_hostname("http://www.hojko.com/profile.php?mode=editprofile"), "<br>";
?>
gwixt
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3912
Registrovaný: 24 sep 2005, 16:50
Bydlisko: Trash-Can

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

chrono napísal:Tak budeš musieť použiť:

Kód: Vybrať všetko

var re = new RegExp(".*/.*/");
no to prave ze nechcem moc do toho originalneho kodu sa vrtat :?
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

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

Tak vyskúšaj: /.*\/.*\/{1}/
ehm123
King
King
Príspevky: 1658
Registrovaný: 27 feb 2006, 6:45
Bydlisko: PD / Praha

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

gwixt
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3912
Registrovaný: 24 sep 2005, 16:50
Bydlisko: Trash-Can

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

no ved to daj vypisat za sebou .. nechapem problem

Tak vyskúšaj: /.*\/.*\/{1}/
to "/{1}" znamena prave jeden vyskyt znaku "/" ?
to by mohlo ist
gwixt
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3912
Registrovaný: 24 sep 2005, 16:50
Bydlisko: Trash-Can

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

no a to je problen spravit v php toto?

Kód: Vybrať všetko

$toto_pojde_do_DB= $link1.$link2.$link3; //a tak dalej
ehm123
King
King
Príspevky: 1658
Registrovaný: 27 feb 2006, 6:45
Bydlisko: PD / Praha

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

gwixt napísal:no a to je problen spravit v php toto?

Kód: Vybrať všetko

$toto_pojde_do_DB= $link1.$link2.$link3; //a tak dalej
ano a velky

pretoze ja vsetky linky dostanem takto $_POST['linky']

cize na to potrebujem nejaky regularny vyraz
gwixt
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3912
Registrovaný: 24 sep 2005, 16:50
Bydlisko: Trash-Can

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

tak poviem

Kód: Vybrať všetko

ereg_replace( ' +', '', $string );
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

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

Vymaž z toho reťazca "prechod na nový riadok" (a bude z toho jeden riadok)

tu sa to riešilo: http://www.hojko.com/post664504.html#664504
gwixt
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3912
Registrovaný: 24 sep 2005, 16:50
Bydlisko: Trash-Can

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

to co som pisal ja odstrani vsetky whitespace znaky .. teda aj tabulatory, konce riadkov ...
ehm123
King
King
Príspevky: 1658
Registrovaný: 27 feb 2006, 6:45
Bydlisko: PD / Praha

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

diki chlapciii ...
zaggi
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 314
Registrovaný: 04 feb 2007, 19:32

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

no, ked su tu regexp specialisti tak sa opytam taku srandu ...

mam regexp \"([^\"]*)\" ... dostanem vsetky retazce v dvojitych uvodzovkach ... funguje ...

mam regexp '([^']*)' ... dostanem vsetky retazce v jednoduchych uvodzovkach ... funguje ...

da sa to dat do jedneho regexpu aby som nedostal napr. "text' ??

nieco ako ['\"]([^'\"]*)['\"]
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

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

Pozri si spätné odkazy (back references) v regulárnych výrazoch (je to mierne zložitejšie ako sú klasické regulárne výrazy).

PS: V komentároch na php.net nájdeš presne to, čo hľadáš: http://cz.php.net/manual/sk/reference.p ... .php#50693
zaggi
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 314
Registrovaný: 04 feb 2007, 19:32

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

dik moc :wink:
Napísať odpoveď