Witam!
Musze napisać do szkoły pewien skrypt, który robi pewne dziwne rzeczy.. Ale nie to jest ważne. Zatrzymałem sie na etapie "wyrzynania" słów z pewnego stringa...

  1. Nazwisko i imiona Bogdanowicz Bogdan Bodzio PESEL 66666666666 Miejsce ur Bobasów
  2. Data ur 01/01/0001 Płec kobieta Typ wymagan standardowy Dyslektyk NIE
  3. Kod 666 Zgoda na przetwarzanie danych osobowych dla celów zwiazanych z egzaminem i procesem rekrutacji na studia TAK


( wszystkich \n już sie pozbyłem )
Z drobną (ok.. więcej niż drobną..) pomocą jaco, doszedłem do czegoś co wygląda mniej więcej tak:

  1. <?php
  2. $imiona = preg_replace('@^.*Nazwisko i imiona ([p{L}A-Za-z]+) ([p{L}A-Za-z]+) .*$@', '2 3', $noCR);
  3. ?>


O ile dobrze zrozumiałem, powinienem z tego uzyskać 2 imiona delikwenta nawet jeśli w imieniu jest jakiś polski znak.. Niestety tak się nie dzieje..
I tu pojawia się moje pytanie.. Wiem, że takich pytań tu nie lubicie, ale z php jestem beznadziejny i tylko taka odpowiedź może im pomóc..

Co jest nie tak? sad.gif

Pozdrawiam,
Piotr 'DreeD' Grzyb



-----------------------------------------------------------------------

Męczyłem to jeszcze przez chwile.. Grzebałem po sieci.. I ostatecznie doszedłem do czegoś co okazuje sie w zupełności wystarczać. Nawet drugie imie jest opcjonalne (w sensie, że pole w tablicy zostawi puste).

Kod
Nazwisko\si\simiona\s+(?<Nazwisko>[^\s]+)\s+(?<Imie>[^\s]+)\s+(?:(?<DrugieImie>[^\s]+)\s+)?PESEL\s+(?<PESEL>\d{11})\s


Może komuś się przyda smile.gif