regular v php

Programovacie jazyky, rady, poradňa...
juho
Star
Star
Používateľov profilový obrázok
Príspevky: 551
Registrovaný: 11 máj 2007, 21:16

Re: regular v php

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

Kód: Vybrať všetko

"/^.+abc+([^d][^e][^f]+)def/"
^.+ vyber retazec ktory zacina akymkolvek znakom bud jednym abo viacerymi
za ktorym(i) nasleduje usek znakov abc abo abcc || abccc abo abccc a tak za ktorymi nenasleduje usek znakov def || deff || defff atakdalej za ktorym nasleduje usek znakov def pricom usek znakov medzi abcccc a def uloz do premennej $1
/ su ohranicenia pre vzor regExpu aspon co sa mi zda
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: regular v php

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

juho: si dva dni pozadu. Nejak mi uniká pointa prečo si to sem napísal keď potom upresnil že prečo to nie je správne
lama2d
VIP
VIP
Príspevky: 1006
Registrovaný: 24 feb 2005, 14:54
Bydlisko: PostgreSQL

Re: regular v php

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

forfun napísal:Pozeram ze su tu odbornici na regular expressions. Len tak nahodou nemate link na nejaky dobry navod na regular expressions?
Co ktory znak znamena atd.
http://www.regularnivyrazy.info/
juho
Star
Star
Používateľov profilový obrázok
Príspevky: 551
Registrovaný: 11 máj 2007, 21:16

Re: regular v php

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

audiotrack: no skoda ze to dalo na druhu stranu bo ten posledny prispevok sa pytal ze ktory znak z vyrazu co znamena. tak som pouzil ten tvoj vzor
a ked tak citam ze tu bola ponuknuta aj stranka tak ponukam tiez http://www.regexp.sk/
Dart
Amateur
Amateur
Príspevky: 18
Registrovaný: 01 mar 2007, 21:39
Bydlisko: Prievidza

Re: regular v php

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

Dakujem vam za napady.

Rieseniu som sa uz dopatral z inych zdrojov. Toto som hladal

Kód: Vybrať všetko

abc(.*?)def
uzitocna mi bola dokumentacia na php.net

Kód: Vybrať všetko

http://www.php.net/manual/en/regexp.reference.repetition.php
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: regular v php

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

Dart napísal:Dakujem vam za napady.

Rieseniu som sa uz dopatral z inych zdrojov. Toto som hladal

Kód: Vybrať všetko

abc(.*?)def
uzitocna mi bola dokumentacia na php.net

Kód: Vybrať všetko

http://www.php.net/manual/en/regexp.reference.repetition.php
nie len že v prvom príspevku dáš nekompletné zadanie, ktoré neskôr upravíš, ale ako sa ukáže, ani to upravenie zadania neplatí. Tak čo vlastne chceš? Toto čo si napísal vôbec nesplňa to, čo si požadoval na predošlej strane:
Dart napísal:...
= medzi "abc" a "def" musia byt aspon 3 znaky. Ja by som chcel aby tam nemuselo byt vobec nic (presnejsie, 1 biely znak musi byt)
= slovo "deff" nie je totozne slovu "def", tzn. taketo slovo sa moze nachadzat medzi "abc" a "def"
...
ukážka reťazca na prvý príklad ktorý ti nevezme: $str = "def xxx abc def xxx xxx def sdsdaf"; (nevypíše mi medzeru)
ukážka druhého: $str = "def xxx abc deff def xxx xxx def sdsdaf"; (nevypíše mi deff)
Dart
Amateur
Amateur
Príspevky: 18
Registrovaný: 01 mar 2007, 21:39
Bydlisko: Prievidza

Re: regular v php

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

ukážka reťazca na prvý príklad ktorý ti nevezme: $str = "def xxx abc def xxx xxx def sdsdaf"; (nevypíše mi medzeru)
mne to medzeru matchne
ukážka druhého: $str = "def xxx abc deff def xxx xxx def sdsdaf"; (nevypíše mi deff)
ok, tak to este upresnim, aby si tu mal na tomto fore presne riesenia

Kód: Vybrať všetko

abc(.*?)\sdef\s
hlavne je toto "(.*?)". ked som objavil takuto sikovnost v regularoch, vedel som si zapisat co som potreboval
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: regular v php

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

Skús to ešte upresniť, lebo niečo takéto "text texabct toto by si chcel def dalsi text" ti mečne "t toto by si chcel" Lenže to je zle, keďže abc nie je "abc"
Napísať odpoveď