[ 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 | 31
Bydlisko: SK/Prievidza
NapísalOffline : 07.04.2010 17:12 | Regularne vyrazy

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 | 51
Bydlisko: Bratislava
NapísalOffline : 07.04.2010 18:09 | Regularne vyrazy

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 | 34
Bydlisko: Brno
NapísalOffline : 07.04.2010 18:46 | Regularne vyrazy

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 | 51
Bydlisko: Bratislava
NapísalOffline : 07.04.2010 19:00 | Regularne vyrazy

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 | 31
Bydlisko: SK/Prievidza
Napísal autor témyOffline : 07.04.2010 22:09 | Regularne vyrazy

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 | 6
NapísalOffline : 09.04.2010 14:32 | Regularne vyrazy

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 | 181
Bydlisko: Nitra / Bra...
NapísalOffline : 10.12.2010 17:16 | Regularne vyrazy

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 | 41
NapísalOffline : 27.12.2010 18:22 | Regularne vyrazy

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 | 6
NapísalOffline : 31.12.2010 17:29 | Regularne vyrazy

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 | 319
Bydlisko: HE/BA
NapísalOffline : 15.01.2011 11:53 | Regularne vyrazy

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 | 319
Bydlisko: HE/BA
NapísalOffline : 06.03.2011 17:17 | Regularne vyrazy

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 | 181
Bydlisko: Nitra / Bra...
NapísalOffline : 12.03.2011 10:57 | Regularne vyrazy

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 | 34
Bydlisko: Brno
NapísalOffline : 12.03.2011 11:10 | Regularne vyrazy

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 | 181
Bydlisko: Nitra / Bra...
NapísalOffline : 12.03.2011 14:10 | Regularne vyrazy

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 | 127
Bydlisko: Lehota pod ...
NapísalOffline : 12.03.2011 16:46 | Regularne vyrazy

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 | 181
Bydlisko: Nitra / Bra...
NapísalOffline : 12.03.2011 17:19 | Regularne vyrazy

čo presne?


_________________
Sorry za prelkepy
Offline

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

Registrovaný: 05.09.09
Príspevky: 1141
Témy: 127 | 127
Bydlisko: Lehota pod ...
NapísalOffline : 12.03.2011 17:29 | Regularne vyrazy

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 | 319
Bydlisko: HE/BA
NapísalOffline : 12.03.2011 17:45 | Regularne vyrazy

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 | 181
Bydlisko: Nitra / Bra...
NapísalOffline : 12.03.2011 17:46 | Regularne vyrazy

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 | 127
Bydlisko: Lehota pod ...
NapísalOffline : 12.03.2011 17:52 | Regularne vyrazy

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 | 181
Bydlisko: Nitra / Bra...
NapísalOffline : 12.03.2011 18:15 | Regularne vyrazy

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 | 34
Bydlisko: Brno
NapísalOffline : 12.03.2011 18:41 | Regularne vyrazy

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 | 319
Bydlisko: HE/BA
NapísalOffline : 12.03.2011 19:10 | Regularne vyrazy

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 | 181
Bydlisko: Nitra / Bra...
NapísalOffline : 12.03.2011 19:36 | Regularne vyrazy

Ď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 | 127
Bydlisko: Lehota pod ...
NapísalOffline : 12.03.2011 23:51 | Regularne vyrazy

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 | 127
Bydlisko: Lehota pod ...
NapísalOffline : 14.03.2011 17:30 | Regularne vyrazy

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ť...


 [ Príspevkov: 26 ] 


Regularne vyrazy



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

729

11.02.2006 14:59

JanoF

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

Regulárne výrazy

v PHP, ASP

3

534

06.12.2009 14:41

Ďuri

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

regularne vyrazy

v PHP, ASP

3

393

30.01.2009 16:57

mybirthday1403

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

JAVA - regulárne výrazy

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

0

778

26.03.2011 11:21

Shwollo

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

Bash - regularne vyrazy

v Operačné systémy Unix a Linux

8

1060

16.11.2010 1:48

karco

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

Regularne vyrazy v PHP

v PHP, ASP

1

452

21.10.2007 22:50

Codik

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

Regulárne výrazy - negácia reťazca

v PHP, ASP

7

921

22.10.2007 20:39

juho

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

Regularne vyrazy v Perl

v Perl, Python, Ruby, CGI

0

2482

21.10.2007 22:41

quark

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

Regulárne výrazy porovnávané s array

v PHP, ASP

2

237

29.12.2012 15:33

Ando

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

360

10.04.2012 21:44

1daemon1

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

454

18.10.2007 19:33

Bananslovak

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

Regulérne výrazy

v PHP, ASP

8

1094

18.07.2009 16:30

Ďuri

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

zase regularne vyrazi -pomoc

v PHP, ASP

1

476

01.10.2007 11:36

mokus

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

779

08.01.2009 17:17

neutronmind



© 2005 - 2024 PCforum, edited by JanoF