Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 26 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 05.02.07
Prihlásený: 27.03.12
Príspevky: 113
Témy: 31
Bydlisko: SK/Prievidza
Príspevok NapísalOffline : 07.04.2010 17:12

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
Offline

Správca fóra
Správca fóra
Regularne vyrazy

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 07.04.2010 18:09

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
Offline

Čestný člen
Čestný člen
Regularne vyrazy

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 07.04.2010 18:46

Len doplnim, lomitko sa escapuje iba vtedy, ked pouzivas samotne lomitko aj ako delimeter.


Offline

Správca fóra
Správca fóra
Regularne vyrazy

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 07.04.2010 19:00

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
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 05.02.07
Prihlásený: 27.03.12
Príspevky: 113
Témy: 31
Bydlisko: SK/Prievidza
Príspevok Napísal autor témyOffline : 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
Offline

Užívateľ
Užívateľ
Regularne vyrazy

Registrovaný: 16.05.07
Prihlásený: 01.08.17
Príspevky: 837
Témy: 6
Príspevok NapísalOffline : 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.


Offline

Užívateľ
Užívateľ
Regularne vyrazy

Registrovaný: 26.12.06
Prihlásený: 16.11.19
Príspevky: 3971
Témy: 181
Bydlisko: Nitra / Bra...
Príspevok NapísalOffline : 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
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.06.09
Prihlásený: 28.05.11
Príspevky: 179
Témy: 41
Príspevok NapísalOffline : 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 :oops:

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.


Offline

Užívateľ
Užívateľ
Regularne vyrazy

Registrovaný: 16.05.07
Prihlásený: 01.08.17
Príspevky: 837
Témy: 6
Príspevok NapísalOffline : 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}]*$/


Offline

Užívateľ
Užívateľ
Regularne vyrazy

Registrovaný: 26.11.06
Prihlásený: 22.01.24
Príspevky: 4118
Témy: 319
Bydlisko: HE/BA
Príspevok NapísalOffline : 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*)/


Offline

Užívateľ
Užívateľ
Regularne vyrazy

Registrovaný: 26.11.06
Prihlásený: 22.01.24
Príspevky: 4118
Témy: 319
Bydlisko: HE/BA
Príspevok NapísalOffline : 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?


Offline

Užívateľ
Užívateľ
Regularne vyrazy

Registrovaný: 26.12.06
Prihlásený: 16.11.19
Príspevky: 3971
Témy: 181
Bydlisko: Nitra / Bra...
Príspevok NapísalOffline : 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 :lol:

ako to treba spravit? dakujem







_________________
Sorry za prelkepy
Offline

Čestný člen
Čestný člen
Regularne vyrazy

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 12.03.2011 11:10

To nemozes proste spravit $text != 'tajne'?


Offline

Užívateľ
Užívateľ
Regularne vyrazy

Registrovaný: 26.12.06
Prihlásený: 16.11.19
Príspevky: 3971
Témy: 181
Bydlisko: Nitra / Bra...
Príspevok NapísalOffline : 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 :lol: neviem preco som sa to zlozito snazil riesit.. takze kazdopadne dakujem, je to vyriesene :)







_________________
Sorry za prelkepy
Offline

Užívateľ
Užívateľ
Regularne vyrazy

Registrovaný: 05.09.09
Príspevky: 1141
Témy: 127
Bydlisko: Lehota pod ...
Príspevok NapísalOffline : 12.03.2011 16:46

emer:
mohol by si to sem nalepiť? Chcel by som to vidieť...


Offline

Užívateľ
Užívateľ
Regularne vyrazy

Registrovaný: 26.12.06
Prihlásený: 16.11.19
Príspevky: 3971
Témy: 181
Bydlisko: Nitra / Bra...
Príspevok NapísalOffline : 12.03.2011 17:19

čo presne?







_________________
Sorry za prelkepy
Offline

Užívateľ
Užívateľ
Regularne vyrazy

Registrovaný: 05.09.09
Príspevky: 1141
Témy: 127
Bydlisko: Lehota pod ...
Príspevok NapísalOffline : 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ž...


Offline

Užívateľ
Užívateľ
Regularne vyrazy

Registrovaný: 26.11.06
Prihlásený: 22.01.24
Príspevky: 4118
Témy: 319
Bydlisko: HE/BA
Príspevok NapísalOffline : 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.


Offline

Užívateľ
Užívateľ
Regularne vyrazy

Registrovaný: 26.12.06
Prihlásený: 16.11.19
Príspevky: 3971
Témy: 181
Bydlisko: Nitra / Bra...
Príspevok NapísalOffline : 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
Offline

Užívateľ
Užívateľ
Regularne vyrazy

Registrovaný: 05.09.09
Príspevky: 1141
Témy: 127
Bydlisko: Lehota pod ...
Príspevok NapísalOffline : 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:]]*


Offline

Užívateľ
Užívateľ
Regularne vyrazy

Registrovaný: 26.12.06
Prihlásený: 16.11.19
Príspevky: 3971
Témy: 181
Bydlisko: Nitra / Bra...
Príspevok NapísalOffline : 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
Offline

Čestný člen
Čestný člen
Regularne vyrazy

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 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.


Offline

Užívateľ
Užívateľ
Regularne vyrazy

Registrovaný: 26.11.06
Prihlásený: 22.01.24
Príspevky: 4118
Témy: 319
Bydlisko: HE/BA
Príspevok NapísalOffline : 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"


Offline

Užívateľ
Užívateľ
Regularne vyrazy

Registrovaný: 26.12.06
Prihlásený: 16.11.19
Príspevky: 3971
Témy: 181
Bydlisko: Nitra / Bra...
Príspevok NapísalOffline : 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
Offline

Užívateľ
Užívateľ
Regularne vyrazy

Registrovaný: 05.09.09
Príspevky: 1141
Témy: 127
Bydlisko: Lehota pod ...
Príspevok NapísalOffline : 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ť...


Offline

Užívateľ
Užívateľ
Regularne vyrazy

Registrovaný: 05.09.09
Príspevky: 1141
Témy: 127
Bydlisko: Lehota pod ...
Príspevok NapísalOffline : 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ť...


Odpovedať na tému [ Príspevkov: 26 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Regulárne výrazy

v Ostatné

0

725

11.02.2006 14:59

JanoF Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Regulárne výrazy

v PHP, ASP

3

528

06.12.2009 14:41

Ďuri Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. regularne vyrazy

v PHP, ASP

3

388

30.01.2009 16:57

mybirthday1403 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Bash - regularne vyrazy

v Operačné systémy Unix a Linux

8

1050

16.11.2010 1:48

karco Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. JAVA - regulárne výrazy

v Assembler, C, C++, Pascal, Java

0

772

26.03.2011 11:21

Shwollo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Regularne vyrazy v Perl

v Perl, Python, Ruby, CGI

0

2476

21.10.2007 22:41

quark Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Regularne vyrazy v PHP

v PHP, ASP

1

446

21.10.2007 22:50

Codik Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Regulárne výrazy - negácia reťazca

v PHP, ASP

7

916

22.10.2007 20:39

juho Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Regulárne výrazy porovnávané s array

v PHP, ASP

2

231

29.12.2012 15:33

Ando Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Regulárne výrazy - všetko okrem výrazu

v PHP, ASP

3

355

10.04.2012 21:44

1daemon1 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Regulárne výrazy - problém - vybrať všetko čo nieje v

v PHP, ASP

2

447

18.10.2007 19:33

Bananslovak Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Regulérne výrazy

v PHP, ASP

8

1085

18.07.2009 16:30

Ďuri Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. zase regularne vyrazi -pomoc

v PHP, ASP

1

468

01.10.2007 11:36

mokus Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Výrazy a priorita operátorov

v Assembler, C, C++, Pascal, Java

1

773

08.01.2009 17:17

neutronmind Zobrazenie posledných príspevkov


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

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra