=?iso-8859-2?q?wyra=BFenia_regularne?=
Wojtek77 - 05-03-2007 00:01
=?iso-8859-2?q?wyra=BFenia_regularne?=
Szukam w ciągu "ala ma kota" ciągu znaków w których nie może występować ciąg "ala". Jak to zapisać używając np. w PHP preg_match. Negację samych pojedyńczych znaków można zrobić tak: [^ala] ale jak zrobić negację do ciągu znaków np "ala". Z góry dziękuję za pomoc.
Damian 'legion' Szuberski - 05-03-2007 00:01
On 2007-03-04, Wojtek77 wrote: > Szukam w ciągu "ala ma kota" ciągu znaków w których nie może > występować ciąg "ala". Jak to zapisać używając np. w PHP preg_match. > Negację samych pojedyńczych znaków można zrobić tak: [^ala] ale jak > zrobić negację do ciągu znaków np "ala". Z góry dziękuję za pomoc. Co chcesz uzyskać?
-- Damian Szuberski
Stachu 'Dozzie' K. - 05-03-2007 00:01
On 04.03.2007, Wojtek77 <wojtek77@o2.pl> wrote: > Szukam w ciągu "ala ma kota" ciągu znaków w których nie może > występować ciąg "ala". Jak to zapisać używając np. w PHP preg_match.
Dlaczego nie szukasz pomocy na grupie poświęconej twojemu językowi? Nie zapomnij pisząc na pl.comp.lang.php podać, dlaczego !preg_match() ci nie wystarcza.
> Negację samych pojedyńczych znaków można zrobić tak: [^ala] ale jak > zrobić negację do ciągu znaków np "ala". Z góry dziękuję za pomoc.
-- <Kosma> Niektórzy lubią dozziego... <Kosma> Oczywiście szanujemy ich. Stanislaw Klekot
Twelve Hungry Mammoths - 05-03-2007 00:01
On Sun, 04 Mar 2007 17:19:40 +0100, Stachu 'Dozzie' K. <dozzie@dynamit.im.pwr.wroc.pl.nospam> wrote: >> Szukam w ciągu "ala ma kota" ciągu znaków w których nie może >> występować ciąg "ala". Jak to zapisać używając np. w PHP preg_match. > > Dlaczego nie szukasz pomocy na grupie poświęconej twojemu językowi? > Nie zapomnij pisząc na pl.comp.lang.php podać, dlaczego !preg_match() > ci nie wystarcza.
bo phpowcy slabo znaja sie na perlowych regexpach?
pzdr szeryf
Wojtek77 - 05-03-2007 00:01
=?iso-8859-2?q?Re:_wyra=BFenia_regularne?=
On 4 Mar, 17:18, Damian 'legion' Szuberski <leg...@wmid.amu.edu.cutthisjunk.pl> wrote: > On 2007-03-04, Wojtek77 wrote: > > Szukam w ciągu "ala ma kota" ciągu znaków w których nie może > > występować ciąg "ala". Jak to zapisać używając np. w PHP preg_match. > > Negację samych pojedyńczych znaków można zrobić tak: [^ala] ale jak > > zrobić negację do ciągu znaków np "ala". Z góry dziękuję za pomoc. > > Co chcesz uzyskać? > > -- > Damian Szuberski
W tym przykładzie to znajdowany jest ciąg " ma kota"
Wojtek77 - 05-03-2007 00:01
=?iso-8859-2?q?Re:_wyra=BFenia_regularne?=
On 4 Mar, 18:26, "Wojtek77" <wojte...@o2.pl> wrote: > On 4 Mar, 17:18, Damian 'legion' Szuberski > > <leg...@wmid.amu.edu.cutthisjunk.pl> wrote: > > On 2007-03-04, Wojtek77 wrote: > > > Szukam w ciągu "ala ma kota" ciągu znaków w których nie może > > > występować ciąg "ala". Jak to zapisać używając np. w PHP preg_match. > > > Negację samych pojedyńczych znaków można zrobić tak: [^ala]ale jak > > > zrobić negację do ciągu znaków np "ala". Z góry dziękuję za pomoc. > > > Co chcesz uzyskać? > > > -- > > Damian Szuberski > > W tym przykładzie to znajdowany jest ciąg " ma kota"
Podam inny przykład: mam ciąg taki: "Usuń przedmiot[0][cena]". Ciąg ten powstał w ten sposób że: "Usuń " jest przedrostkiem który został dodany do nazwy tablicy "przedmiot[0][cena]". I teraz chcę z tego ciągu "Usuń przedmiot[0][cena]" uzyskać nazwę tablicy czyli "przedmiot". Mogę to zrobić za pomocą preg_replace('/^Usuń |\[.+\]/' , '' , 'Usuń przedmiot[0][cena]') ale ja chcę to zrobić za pomocą preg_match i nie wiem jak zrobić żeby początkowy prefix "Usuń " nie był brany przy szukaniu dopasowania. Żeby pojedyńczy znak nie występował w dopasowaniu wystarczy zrobić tak: [^jakis_znak] ale to nie działa w stosunku do stringa bo zostaje string potraktowany jako zbiór pojedyńczych znaków. Więc pytanie jakie na początku zadałem jak sprawić żeby w dopasowaniu nie był brany pod uwagę jakiś dany ciąg.
Damian 'legion' Szuberski - 05-03-2007 00:01
On 2007-03-04, Wojtek77 wrote: >>> Szukam w ciągu "ala ma kota" ciągu znaków w których nie może >>> występować ciąg "ala". Jak to zapisać używając np. w PHP preg_match. >>> Negację samych pojedyńczych znaków można zrobić tak: [^ala] ale jak >>> zrobić negację do ciągu znaków np "ala". Z góry dziękuję za pomoc. >> Co chcesz uzyskać? > W tym przykładzie to znajdowany jest ciąg " ma kota" No to pogrupuj nawiasami a potem odrzuć zbędne części.
-- Damian Szuberski
Wojtek77 - 05-03-2007 00:01
=?iso-8859-2?q?Re:_wyra=BFenia_regularne?=
On 4 Mar, 18:45, Damian 'legion' Szuberski <leg...@wmid.amu.edu.cutthisjunk.pl> wrote: > On 2007-03-04, Wojtek77 wrote: > >>> Szukam w ciągu "ala ma kota" ciągu znaków w których nie może > >>> występować ciąg "ala". Jak to zapisać używając np. w PHP preg_match. > >>> Negację samych pojedyńczych znaków można zrobić tak: [^ala]ale jak > >>> zrobić negację do ciągu znaków np "ala". Z góry dziękuję za pomoc. > >> Co chcesz uzyskać? > > W tym przykładzie to znajdowany jest ciąg " ma kota" > > No to pogrupuj nawiasami a potem odrzuć zbędne części. > > -- > Damian Szuberski
Można prosić o przykład?
Damian 'legion' Szuberski - 05-03-2007 00:01
On 2007-03-04, Wojtek77 wrote: >> No to pogrupuj nawiasami a potem odrzuć zbędne części. > Można prosić o przykład? perldoc perlre
/^(Ala)(.*)/ No i teraz w drugim nawiasie masz wszystko oprócz "Ala". Resztę doczytaj.
-- Damian Szuberski
Wojtek77 - 06-03-2007 00:04
=?iso-8859-2?q?Re:_wyra=BFenia_regularne?=
On 4 Mar, 22:30, Damian 'legion' Szuberski <leg...@wmid.amu.edu.cutthisjunk.pl> wrote: > On 2007-03-04, Wojtek77 wrote: > >> No to pogrupuj nawiasami a potem odrzuć zbędne części. > > Można prosić o przykład? > > perldoc perlre > > /^(Ala)(.*)/ > No i teraz w drugim nawiasie masz wszystko oprócz "Ala". > Resztę doczytaj. > > -- > Damian Szuberski
Dziękuję bardzo za pomoc. Zrobiłem tak:
preg_match('/^(Ala)(.+)/' , 'Ala ma kota' , $tab);
$tab ma takie wyniki:
Array ( [0] => Ala ma kota [1] => Ala [2] => ma kota )
Czy jest możliwe jeszcze prostsze rozwiązanie żeby nie było 3 wyników tylko jeden " ma kota" używając tylko preg_match oczywiście. Pozdrawiam.
Maciej Misiak - 06-03-2007 00:04
> Dziękuję bardzo za pomoc. Zrobiłem tak: > > preg_match('/^(Ala)(.+)/' , 'Ala ma kota' , $tab); > > $tab ma takie wyniki: > > Array > ( > [0] => Ala ma kota > [1] => Ala > [2] => ma kota > ) > > Czy jest możliwe jeszcze prostsze rozwiązanie żeby nie było 3 wyników > tylko jeden " ma kota" używając tylko preg_match oczywiście.
Pewnie. Tylko musisz doczytać w opisie preg_match: If matches is provided, then it is filled with the results of search. $matches[0] will contain the text that matched the full pattern, $matches[1] will have the text that matched the first captured parenthesized subpattern, and so on.
Czyli musisz stworzyć regexp, który nie zawiera nawiasów i dopasowuje tylko to, co chcesz. Wtedy dostaniesz w wyniku jeden element. A ponieważ nie rozumiem dokładnie z czym masz problem, to jeszcze raz go opisz :) Tzn. 1. czy chodzi o to, że chcesz pominąć pierwszy 'wyraz' i otrzymać resztę? /\b\w+\[.+/
2. czy też masz łańcuch zawierający więcej niż jeden 'wyraz', no końcu którego znajduje się nazwa tablicy z indeksami? Hmm, właściwie też /\b\w+\[.+/
3. czy po tej tablicy jeszcze mogą być jakieś kropki, spacje albo inne znaki? To może tak: /\b\w+(\[\d+\])+/
A więc?
-- grizzley
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Stachu 'Dozzie' K. - 06-03-2007 00:04
On 04.03.2007, Twelve Hungry Mammoths <someone@microsoft.com> wrote: > On Sun, 04 Mar 2007 17:19:40 +0100, Stachu 'Dozzie' K. ><dozzie@dynamit.im.pwr.wroc.pl.nospam> wrote: >>> Szukam w ciągu "ala ma kota" ciągu znaków w których nie może >>> występować ciąg "ala". Jak to zapisać używając np. w PHP preg_match. >> >> Dlaczego nie szukasz pomocy na grupie poświęconej twojemu językowi? >> Nie zapomnij pisząc na pl.comp.lang.php podać, dlaczego !preg_match() >> ci nie wystarcza. > > bo phpowcy slabo znaja sie na perlowych regexpach?
Powiedziałbym, że znają się całkiem nieźle, wnosząc po popularności funkcji preg_* (że w ogóle występują w PHP i że tyle tutoriali zaleca używanie preg_*).
-- <Kosma> Niektórzy lubią dozziego... <Kosma> Oczywiście szanujemy ich. Stanislaw Klekot
Wojtek77 - 06-03-2007 00:04
=?iso-8859-2?q?Re:_wyra=BFenia_regularne?=
On 5 Mar, 08:23, "Maciej Misiak" <grizzleyWYTNI...@op.pl> wrote: > > Dziękuję bardzo za pomoc. Zrobiłem tak: > > > preg_match('/^(Ala)(.+)/' , 'Ala ma kota' , $tab); > > > $tab ma takie wyniki: > > > Array > > ( > > [0] => Ala ma kota > > [1] => Ala > > [2] => ma kota > > ) > > > Czy jest możliwe jeszcze prostsze rozwiązanie żeby nie było 3 wyników > > tylko jeden " ma kota" używając tylko preg_match oczywiście. > > Pewnie. Tylko musisz doczytać w opisie preg_match: > If matches is provided, then it is filled with the results of search. > $matches[0] will contain the text that matched the full pattern, $matches[1] > will have the text that matched the first captured parenthesized subpattern, and > so on. > > Czyli musisz stworzyć regexp, który nie zawiera nawiasów i dopasowuje tylko to, > co chcesz. Wtedy dostaniesz w wyniku jeden element. A ponieważ nie rozumiem > dokładnie z czym masz problem, to jeszcze raz go opisz :) Tzn. > 1. czy chodzi o to, że chcesz pominąć pierwszy 'wyraz' i otrzymaćresztę? > /\b\w+\[.+/ > > 2. czy też masz łańcuch zawierający więcej niż jeden 'wyraz',no końcu którego > znajduje się nazwa tablicy z indeksami? > Hmm, właściwie też /\b\w+\[.+/ > > 3. czy po tej tablicy jeszcze mogą być jakieś kropki, spacje albo inne znaki? > To może tak: /\b\w+(\[\d+\])+/ > > A więc? > > -- > grizzley > > -- > Wysłano z serwisu OnetNiusy:http://niusy.onet.pl
To na przykładzie "Ala ma kota" chcę uzyskać drugi wyraz tzn "ma". Jak to zrobić w preg_match ?
Maciej Misiak - 06-03-2007 00:04
> To na przykładzie "Ala ma kota" chcę uzyskać drugi wyraz tzn "ma". Jak > to zrobić w preg_match ?
Czyli wyraz znaleziony po pierwszej spacji? /(?<= )\w+/
-- grizzley
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Wojtek77 - 06-03-2007 00:04
=?iso-8859-2?q?Re:_wyra=BFenia_regularne?=
> > Czyli wyraz znaleziony po pierwszej spacji? > /(?<= )\w+/ > > -- > grizzley
Można prosić o wyjaśnienie tej składni: (?<= )
Stachu 'Dozzie' K. - 06-03-2007 00:04
On 05.03.2007, Wojtek77 <wojtek77@o2.pl> wrote: >> >> Czyli wyraz znaleziony po pierwszej spacji? >> /(?<= )\w+/ >> >> -- >> grizzley > > Można prosić o wyjaśnienie tej składni: (?<= )
Można prosić o przejrzenie dokumentacji Perla?
-- <Kosma> Niektórzy lubią dozziego... <Kosma> Oczywiście szanujemy ich. Stanislaw Klekot
Maciej Misiak - 06-03-2007 00:04
> On 05.03.2007, Wojtek77 <wojtek77@o2.pl> wrote: > >> > >> Czyli wyraz znaleziony po pierwszej spacji? > >> /(?<= )\w+/ > >> > >> -- > >> grizzley > > > > Można prosić o wyjaśnienie tej składni: (?<= ) > > Można prosić o przejrzenie dokumentacji Perla?
:)
(Za)prosić można oczywiście na stronę http://perldoc.perl.org/perlre.html i z frazą kluczową "(?<=pattern)" prosimy zawalczyć :)
-- grizzley
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Wojtek77 - 06-03-2007 00:04
=?iso-8859-2?q?Re:_wyra=BFenia_regularne?=
On 5 Mar, 16:47, "Stachu 'Dozzie' K." <doz...@dynamit.im.pwr.wroc.pl.nospam> wrote: > On 05.03.2007, Wojtek77 <wojte...@o2.pl> wrote: > > > > >> Czyli wyraz znaleziony po pierwszej spacji? > >> /(?<= )\w+/ > > >> -- > >> grizzley > > > Można prosić o wyjaśnienie tej składni: (?<= ) > > Można prosić o przejrzenie dokumentacji Perla?
A gdzie jest taka dokumentacja to przejrzenia najlepiej po polsku?
Stachu 'Dozzie' K. - 06-03-2007 00:04
On 05.03.2007, Wojtek77 <wojtek77@o2.pl> wrote: > On 5 Mar, 16:47, "Stachu 'Dozzie' K." ><doz...@dynamit.im.pwr.wroc.pl.nospam> wrote: >> On 05.03.2007, Wojtek77 <wojte...@o2.pl> wrote: >> >> >> >> >> Czyli wyraz znaleziony po pierwszej spacji? >> >> /(?<= )\w+/ >> >> >> -- >> >> grizzley >> >> > Można prosić o wyjaśnienie tej składni: (?<= ) >> >> Można prosić o przejrzenie dokumentacji Perla? > > A gdzie jest taka dokumentacja to przejrzenia najlepiej po polsku?
perldoc choćby. O dokumentacji online nie wspominając. Google ogłosiło upadłość?
-- <Kosma> Niektórzy lubią dozziego... <Kosma> Oczywiście szanujemy ich. Stanislaw Klekot
Wojtek77 - 06-03-2007 00:04
=?iso-8859-2?q?Re:_wyra=BFenia_regularne?=
Zrobiłem tak: preg_match('/(?<=^Usuń )[^\[]+/' , 'Usuń przedmiot[0][cena]' , $tab);
Wynik jest taki: Array ( [0] => przedmiot )
i to jest właśnie to czego szukałem. Może jeszcze parę takich ciekawych przykładów ktoś poda?
Wielkie podziękowania dla Maćka Misiaka.
Krzysztof Juszkiewicz - 07-03-2007 00:07
Wojtek77 wrote in group pl.comp.lang.perl: >Może jeszcze parę takich ciekawych przykładów ktoś poda? ftp://ftp.helion.pl/online/cwperl/cwperl-7.pdf No i perl-faq KJ -- _ _ ___ | |/ / |_ _| Krzysztof Juszkiewicz http://www.kt.agh.edu.pl/~juszkiew/ |_|\_\ |_| Dept. of Telecommunications http://www.kt.agh.edu.pl/ AGH AGH pl.comp.lang.perl FAQ: http://www.kt.agh.edu.pl/other/perl/faq/
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Wydajność baz danych w zależności od poziomu izolacji ANSI/ISO
Czy zna (obsługuje) ktoś program Iso Draw ?
MYSQL - kodowanie w ISO-PL
strona plus baza w iso do utf-8
Kodowanie: z iso na utf
Konwesja znaków w dump'ie bazy danych - ISO -> utf-8 -> ISO -> utf-8
=?iso-8859-2?q?Co_oznacza_b=B3=B1d_Warning:_mysql=5Fconnect() _[function.mysql-connect]:_Can't_connect_to_local_MySQL_server_through_sock et_'/var/run/mysqld/mysqld.sock'_(2)_in?=
=?iso-8859-2?q?Informatyka,_Java,_EJB,_Ajax,_Spring=2E_Czy=BF by_to_koniec_=B6wiata,_czy_te=BF_nasze_uczelnie_b= EAd=B1_uczy=B3y_w_ko=F1cu!_czego_praktycznego_=2E= 2E=2E=2E?=
=?iso-8859-2?q?Ati_Mobility_Radeon_X300_W_Notebooku_Jak_Zwi=E Akszy=E6_Ilo=B6=E6_Grafiki_Poprzez_Wsp=F3=B3dziele nie_Z_Ramu=3F=3F=3F?=
=?ISO-8859-2?Q?=AFegnam_si=EA=2E=2E=2E?=
zanotowane.pldoc.pisz.plpdf.pisz.pldirtyboys.xlx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|