| | |
| Stránka: 1 z 1
| [ Príspevkov: 26 ] | |
Autor | Správa |
---|
Registrovaný: 05.02.07 Prihlásený: 27.03.12 Príspevky: 113 Témy: 31 Bydlisko: SK/Prievidza |
Zdravim poteboval by som trochu pomoct s regularnymi vyrazmi v PHP motkam sa s tym uz pekne dlho ale nikdy nedostanem to co chcem potrebujem vyraz, ktory zacina http:// medzitym su znaky iba a-z A-Z 0-9 . / a vyraz sa konci .swf
dakujem velmi pekne
_________________ MB:ASUS P5Q PRO CPU: Intel Core 2 Quad Q9300 2.5GHz + Thermalright Ultra-120 eXtreme+Scythe S-Flex 120mmFAN 1200rpm GPU: ATI Sapphire HD4870 1GBRAM:4GB DDR2-800Mhz CL5 Kingston 2x2GB HDD:WD6400AAKS 640GB 2x PSU:Enermax MODU82+ EMD525AWT DVDRW:LG GH22LS30 LS CASE: ThermalTake VI1000BWS M9 Monitor:Samsung LCD 24" 2493HM OS:OEM WIndows Vista Home Premium 64bit SK |
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
staci si to, co si napisal, prelozit do "jazyka" regularnych vyrazov:
- vyraz zacina http://
Kód: ^http:\/\/ - medzitym su iba znaky a-z A-Z 0-9 . / Kód: [a-zA-Z0-9\.\/]+ - vyraz sa konci .swf Kód: \.swf$
nakoniec to staci uz len zlozit dokopy...
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 07.04.2010 18:46 | |
|
Len doplnim, lomitko sa escapuje iba vtedy, ked pouzivas samotne lomitko aj ako delimeter.
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
jj, lomitko som pouzival ako delimiter, preto tie opacne lomitka...
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 05.02.07 Prihlásený: 27.03.12 Príspevky: 113 Témy: 31 Bydlisko: SK/Prievidza | Napísal autor témy 8andrej8: 07.04.2010 22:09 | |
|
Dakujem velmi pekne, potreboval by som este pomoct s regularnym vyrazom aby vedel vyhladat aj slova s diakritikou potrebujem aby nasiel vyraz MEDZERA-MEDZERAroznep_pismena_aj_diakritikaMEDZERAflash
skusal som Kód: \s-\s[a-zA-ZÁ-Žá-ž0-9]\.\/-]+flash ale nefungovalo to pise mi: Compilation failed: range out of order in character class at offset 14
Dakujem za pomoc
_________________ MB:ASUS P5Q PRO CPU: Intel Core 2 Quad Q9300 2.5GHz + Thermalright Ultra-120 eXtreme+Scythe S-Flex 120mmFAN 1200rpm GPU: ATI Sapphire HD4870 1GBRAM:4GB DDR2-800Mhz CL5 Kingston 2x2GB HDD:WD6400AAKS 640GB 2x PSU:Enermax MODU82+ EMD525AWT DVDRW:LG GH22LS30 LS CASE: ThermalTake VI1000BWS M9 Monitor:Samsung LCD 24" 2493HM OS:OEM WIndows Vista Home Premium 64bit SK |
|
Registrovaný: 16.05.07 Prihlásený: 01.08.17 Príspevky: 837 Témy: 6 | Napísal juho: 09.04.2010 14:32 | |
|
http://www.regular-expressions.info/unicode.html píše: To match a letter including any diacritics, use \p{L}\p{M}*. This last regex will always match à, regardless of how it is encoded.
|
|
Registrovaný: 26.12.06 Prihlásený: 16.11.19 Príspevky: 3971 Témy: 181 Bydlisko: Nitra / Bra... | Napísal emer: 10.12.2010 17:16 | |
|
zdravim, mozete mi prosim pomoct s reg. vyrazmi? je to moja slaba stranka
mam vyraz Kód: preg_match_all('#{G (.*?)}#i', $X, $Y); ktory funguje dobre, ale chcel by som ho obohatit o escapovanie. takze ak mam Kód: $X = 'nejaky text {G text na vyber \} a tak dalej}'; aby mi vybralo text na vyber \} a tak dalej a nie text na vyber \dakujem edit - riesenie:Kód: #\{G (.*?)(?<!\\\)\}#i
_________________ Sorry za prelkepy |
|
Registrovaný: 21.06.09 Prihlásený: 28.05.11 Príspevky: 179 Témy: 41 | Napísal php30: 27.12.2010 18:22 | |
|
Ahojte, cely den sa trapim s jednym reg.vyrazom.Ide mi o to aby dokazal pracovat s diakritikov.
Studoval som na internete roznu literaturu, ale nejako sa mi to nepodarilo
napr. na http://www.regular-expressions.info/unicode.html som sa docital ze je potrebne pouzit
Kód: \p{L}\p{M}* bohuzial mne sa to nepodarilo spojazdnit Mam takyto jednoduchy kod: Kód: $message = "ľščťžýáí"; $aa = preg_match("/^[\w\s\d]$/",$message); if ($aa) echo "<h1>true</h1>"; else echo "<h1>false</h1>"; Najprv som to skusal s: Kód: \w\s\d co su vlastne znaky slova,cisla a prazdne znaky Potom s: Kód: $aa = preg_match("/^[\p{L}\p{M}]$/",$message); Kód: $aa = preg_match("/^[\P{M}\p{M}]$/",$message); ale nefungovalo. Stiahol som si jeden program na reg.vyrazy a tam som si pre unicode spravil toto: Kód: $aa = preg_match("/^[\p{L}\p{M}]\p{N}\p{P}]$/",$message); Ale taktiez to nefungovalo Potom som si na jednej web stranke vygeneroval toto: Kód: $aa = preg_match("/^[A-Za-z0-9À-ÖØ-öø-ɏ]$/",$message);
Ale niesu v tom vsetky potrebne znaky
Takze som uz zufaly. Vedel by ma niekto usmernit alebo mi poradit kde robim chybu?
Dakujem za odpovede.
|
|
Registrovaný: 16.05.07 Prihlásený: 01.08.17 Príspevky: 837 Témy: 6 | Napísal juho: 31.12.2010 17:29 | |
|
opis tvojho riesenia
ja samozvany vladca php30 hladam taky vyraz vo vyraze ľščťžýá ze bude
^ zacinat
[ ] bude obsahovat jeden znak
$ a bude koncit
a just ti nikdy nemoze dat true ked hladas 1 znakovy retazec vo viacznakovom to sa proste neda musis porovnavat len rovnako dlhe retazce iba zeby si hladas nejaky subretazec a nato nepouzivaj ^ a $ ale len jedno z nich abo potom pouzi jeden z multiplexovych kvatifikatorov Kód: /^[\p{L}\P{M}]*$/
|
|
Registrovaný: 26.11.06 Prihlásený: 22.01.24 Príspevky: 4118 Témy: 319 Bydlisko: HE/BA | Napísal Flety: 15.01.2011 11:53 | |
|
Potrebujem nahradiť všetky čísla v reťazci, skúšal som hľadať na gugli aj v tejto téme ale nič mi nešlo. Mal som Kód: preg_replace('/[^a-z]/i', '', $string); ale to mi zmazalo aj diakritiku.
Ďakujem.
//Heh, riešenie: /(\d*)/
|
|
Registrovaný: 26.11.06 Prihlásený: 22.01.24 Príspevky: 4118 Témy: 319 Bydlisko: HE/BA | Napísal Flety: 06.03.2011 17:17 | |
|
Zdravím, mám výraz Kód: /([[:space:]]*)([\W][^\s]?)([[:space:]]*)/is ten má nájsť všetky nealfanumerické znaky okolo ktorých sú nejaké medzery. Potrebujem ale nájsť len tie, ktoré nie sú v úvodzovkách alebo apostrofoch. Ako na to?
|
|
Registrovaný: 26.12.06 Prihlásený: 16.11.19 Príspevky: 3971 Témy: 181 Bydlisko: Nitra / Bra... | Napísal emer: 12.03.2011 10:57 | |
|
prosím vás,
potrebujem regularny vyraz, ktory bdue robit nasledovne.
zhoda ak je to hocijaky text, okrem toho ak je to iba slovo tajne (priklad)
zhody:
Citácia: nejaky-text text-a-tajne-slovo ahoj nejaky-dlhy-text_s-cislom-5
nezhody:
Kód: tajne
skusal som uz vseliake kombinacie, a nic z toho
ako to treba spravit? dakujem
_________________ Sorry za prelkepy |
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 12.03.2011 11:10 | |
|
To nemozes proste spravit $text != 'tajne'?
|
|
Registrovaný: 26.12.06 Prihlásený: 16.11.19 Príspevky: 3971 Témy: 181 Bydlisko: Nitra / Bra... | Napísal emer: 12.03.2011 14:10 | |
|
nie, potrebujem to v regularke. mam spravenu metodu, kde si mozem menit nejake pravidla, nieco podobne ako su riesene v codeiginiteri cesty (routes).
ale teraz si mi vlastne vnukol myslienku, ze ked tam pridam este jedno pravidlo navyse, tak nemusim mat taky zlozity vyraz neviem preco som sa to zlozito snazil riesit.. takze kazdopadne dakujem, je to vyriesene
_________________ Sorry za prelkepy |
|
Registrovaný: 05.09.09 Príspevky: 1141 Témy: 127 Bydlisko: Lehota pod ... | Napísal camo: 12.03.2011 16:46 | |
|
emer:
mohol by si to sem nalepiť? Chcel by som to vidieť...
|
|
Registrovaný: 26.12.06 Prihlásený: 16.11.19 Príspevky: 3971 Témy: 181 Bydlisko: Nitra / Bra... | Napísal emer: 12.03.2011 17:19 | |
|
čo presne?
_________________ Sorry za prelkepy |
|
Registrovaný: 05.09.09 Príspevky: 1141 Témy: 127 Bydlisko: Lehota pod ... | Napísal camo: 12.03.2011 17:29 | |
|
emer:
Výraz k tomu tvojmu tajnému slovu... Či si to nakoniec riešil úplne inak (ako to tak čítam znovu)? Tiež som rozmýšĺal nad tým čo napísal Ďuri, prečo to nenapíšeš 8text != "tajne". Tak som chcel vidieť to tvoje riešenie, či si tam použil nejaké podmienené výrazy či čo už...
|
|
Registrovaný: 26.11.06 Prihlásený: 22.01.24 Príspevky: 4118 Témy: 319 Bydlisko: HE/BA | Napísal Flety: 12.03.2011 17:45 | |
|
Flety píše: Zdravím, mám výraz Kód: /([[:space:]]*)([\W][^\s]?)([[:space:]]*)/is ten má nájsť všetky nealfanumerické znaky okolo ktorých sú nejaké medzery. Potrebujem ale nájsť len tie, ktoré nie sú v úvodzovkách alebo apostrofoch. Ako na to? Chlapi, keď už tu je takáto aktivita, prosím pomôžte mi, je to dosť dôležité a stále som to nevyriešil.
|
|
Registrovaný: 26.12.06 Prihlásený: 16.11.19 Príspevky: 3971 Témy: 181 Bydlisko: Nitra / Bra... | Napísal emer: 12.03.2011 17:46 | |
|
nie, ja mozem mat lubovolny pocet pravidiel, a pridal som jedno pravidlo navyse.. lebo funguje to tak, ze ked sa na to hodi jedno pravidlo, tak uz dalsie neaplikuje. takze pri spravnom poradi to funguje dobre
takze som dal pravidla
Kód: 'tajne' => 'vysledok', '([a-z0-9_-]+)' => 'iny vysledok'
_________________ Sorry za prelkepy |
|
Registrovaný: 05.09.09 Príspevky: 1141 Témy: 127 Bydlisko: Lehota pod ... | Napísal camo: 12.03.2011 17:52 | |
|
emer:
no OK snáď rozumiem..
flety:
Reguláry predsa poznajú aj logické or tj. |
Keď tam dáš proste "|' tak to nefunguje???
EDIT: flety:
Ale ako vidím ty chceš tie ktoré niesú v úvodzovkách...
No a negácia [^'"] nefunguje???
EDIT:
Ahá rozumiem... len neviem ci viem ako na to...
Ale co tak [[:space:]]*[^'"a-zA-Z0-9][^\w\d]+[^'"a-zA-Z0-9][[:space:]]*
|
|
Registrovaný: 26.12.06 Prihlásený: 16.11.19 Príspevky: 3971 Témy: 181 Bydlisko: Nitra / Bra... | Napísal emer: 12.03.2011 18:15 | |
|
podla man to nepojde len tak jednym regularnym vyrazom, program len tak nedokaze roznat ci sa nachadza v uvodzovkach alebo mimo nich...
"cislo 4" a ine cislo 5 "mozno cislo 3"
vybere ti 4,5 alebo 3?
imho to bude treba rozdelit podla tych uvodzoviek a viac krat pustit regualrku.
samozrejme len rozmyslam, nejak moc sa do regulariek nevyznam, takze tak
_________________ Sorry za prelkepy |
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 12.03.2011 18:41 | |
|
emer píše: podla man to nepojde len tak jednym regularnym vyrazom, program len tak nedokaze roznat ci sa nachadza v uvodzovkach alebo mimo nich... Preco by nie? Napriklad nasledovne:
Kód: $matches = array(); preg_match_all('/(\'|")(\d+?)\1/', '"2" \'1\' 666 \'1233\' "495" \'44\' \'foo\' "bar" \'3\'', $matches); var_export($matches[2]); Vrati vsetky najdene cisla v uvodzovkach alebo apostrofoch. Vysledok: Kód: array ( 0 => '2', 1 => '1', 2 => '1233', 3 => '495', 4 => '44', 5 => '3', ) Takze snad by nemal byt problem si k tomu dorobit, co potrebujes. Ja som velmi Fletyho nepochopil, takze neviem, co chce. Najlepsie bude, ked rovno napisete priklad, z akeho textu a aky vysledok by mal regexp vratit.
|
|
Registrovaný: 26.11.06 Prihlásený: 22.01.24 Príspevky: 4118 Témy: 319 Bydlisko: HE/BA | Napísal Flety: 12.03.2011 19:10 | |
|
Napríklad text: Kód: + , * " a, b - c" = tralala; bum" by sa mal prepísať na: Kód: +,*" a, b - c"=tralala;bum"
|
|
Registrovaný: 26.12.06 Prihlásený: 16.11.19 Príspevky: 3971 Témy: 181 Bydlisko: Nitra / Bra... | Napísal emer: 12.03.2011 19:36 | |
|
Ďuri píše: ...
no dobre ale on to mysli inak, nie ze cislo je v ovodzovkach typu "1" ale "text a 1".. a potom sa v tom strati aj clovek, kde este program. pozri si moj priklad
_________________ Sorry za prelkepy |
|
Registrovaný: 05.09.09 Príspevky: 1141 Témy: 127 Bydlisko: Lehota pod ... | Napísal camo: 12.03.2011 23:51 | |
|
Už tú emerovu pripomienku chápem presne...
Ja teda tiež neviem ako by sa to dalo urobiť na jeden krát.
Mne sa to podarilo urobiť na štyri:
1. Najprv vyhľadám výrazy v úvodzovkách a uložím ich do pola matches pomocou preg_match_all().
2. Nahradím tie výrazy špecifickou značkou XXX
3. Urobí sa náhrada o ktorej sme sa tu bavili. Teraz už tie úvodzovky nevadia...
4. Vrátia sa výrazy, ktoré sú uložené v poli matches na miesto
Kód: <?php $text = ' + , * " a, b - c" = tralala; bum"m + m"n + n" \' aha \' koniec\''; echo "text:<br>".$text."<br>";
$patern = '/(\'[^\']*\')|("[^"]*")/i';
preg_match_all($patern, $text, $matches); $text = preg_replace($patern, "XXX", $text); echo "$text<br>";
$patern2 = '/[[:space:]]*([^\w\d])[[:space:]]*/i'; $text = preg_replace($patern2, '$1', $text); echo "$text<br>";
$patern3 = '/XXX/'; foreach($matches[0] as $match){ $text = preg_replace($patern3, $match, $text, 1); } echo "výsledok:$text";
?>
Dúfam, že tam nerobím nejakú chybu... Bolo to o nervy a teraz sa idem z toho liečiť...
|
|
Registrovaný: 05.09.09 Príspevky: 1141 Témy: 127 Bydlisko: Lehota pod ... | Napísal camo: 14.03.2011 17:30 | |
|
flety:
skoro sa mi to podarilo napísať jedným výrazom, ale robia tam problém úvodzovky v druhom subvýraze. Musia tam byť a zároveň robia problém, že sa vyčleňujú spomedzi znakov ktoré majú byť nahradené...
Kód: $patern = '/([[:space:]]*([^\w\d"\'])[[:space:]]*)|([\w\d])*(\'[^\']*\')|("[^"]*")/'; $text = preg_replace($paternNew, '$2$3$4$5', $text);
Možno by to šlo nejako cez podmienené výrazy, ale to neviem použiť...
|
|
| Stránka: 1 z 1
| [ Príspevkov: 26 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| Regulárne výrazy v Ostatné | 0 | 718 | 11.02.2006 14:59 JanoF | | Regulárne výrazy v PHP, ASP | 3 | 525 | 06.12.2009 14:41 Ďuri | | regularne vyrazy v PHP, ASP | 3 | 385 | 30.01.2009 16:57 mybirthday1403 | | Bash - regularne vyrazy v Operačné systémy Unix a Linux | 8 | 1043 | 16.11.2010 1:48 karco | | JAVA - regulárne výrazy v Assembler, C, C++, Pascal, Java | 0 | 768 | 26.03.2011 11:21 Shwollo | | Regulárne výrazy - negácia reťazca v PHP, ASP | 7 | 908 | 22.10.2007 20:39 juho | | Regularne vyrazy v Perl v Perl, Python, Ruby, CGI | 0 | 2474 | 21.10.2007 22:41 quark | | Regularne vyrazy v PHP v PHP, ASP | 1 | 441 | 21.10.2007 22:50 Codik | | Regulárne výrazy - všetko okrem výrazu v PHP, ASP | 3 | 350 | 10.04.2012 21:44 1daemon1 | | Regulárne výrazy porovnávané s array v PHP, ASP | 2 | 229 | 29.12.2012 15:33 Ando | | Regulárne výrazy - problém - vybrať všetko čo nieje v v PHP, ASP | 2 | 444 | 18.10.2007 19:33 Bananslovak | | Regulérne výrazy v PHP, ASP | 8 | 1080 | 18.07.2009 16:30 Ďuri | | zase regularne vyrazi -pomoc v PHP, ASP | 1 | 465 | 01.10.2007 11:36 mokus | | Výrazy a priorita operátorov v Assembler, C, C++, Pascal, Java | 1 | 766 | 08.01.2009 17:17 neutronmind |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|