Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 27 Pomógł: 3 Dołączył: 19.05.2009 Ostrzeżenie: (0%)
|
Witam,
Przeglądałem tematy, jednak nie znalazłem odpowiedniego rozwiązania. Chciałbym podzielić wypowiedź na zdania. Funkcja explode odpada, gdyż podzieli także skróty. Tj "Kiedyś tam, np. wczoraj." podzieli na dwa zdania. W związku z tym pomyślałem, że dobre będzie przygotowanie wzorca i użycie preg_match_all. Posiadam tablice wczytana z pliku zawierającą wykaz polskich skrótów, dlatego też pomyslałem, że stworze wzorzec, który brałby pod uwagę wszystkie znaki przed kropką, chyba, że przed kropką jest jeden z elementów tablicy. Pomyślałem, że zaczne na razie od najprostszego, czyli dzielenia na zdania na razie bez uwzględnienia skrótów. Problem dotyczy wzorca, po napisaniu
Zwraca mi tablice z cala wypowiedzia, niepodzielona. Oczywiście jeśli pomysł jest inny, nie musi to zostać w ten sposób rozwiązane. |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk |
Pregmatch sie tak dobrze nie sprawdzi.
Lepiej zrobic cos takiego 1) Rozbijasz ciag wedlug . za pomoca explode. 2) iterujesz tablice 3) dla elementu sprawdzasz czy ostatnie słowo jest skrotem, jezeli tak to element laczysz z nastepnym elementem tablicy. Nastepny element tablicy znajdziesz za pomoca http://php.net/next Sadze ze bedzie szybsze od preg_matcha i latwiejsze do ewentualnej modyfikacji Ten post edytował wookieb 19.05.2009, 11:08:35 |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 27 Pomógł: 3 Dołączył: 19.05.2009 Ostrzeżenie: (0%)
|
Czy jest funkcja (w manualu nie znalazłem, a szukałem, bo wcześniej właśnie takie rozwiązanie brałem pod uwagę), która nie tylko usunie następny element tablicy, ale i przesunie kolejne? Tj. załata powstałe w ten sposób dziury
Bo jeśli przejde tablice foreachem, to co stanie się po połączeniu z następnym elementem? czy foreach później przejdzie do tego elementu i też będzie go sprawdzał? |
|
|
|
Post
#4
|
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk |
Nie musisz łatac.
Jeżeli używasz pętli foreach to raczej musisz elementy wrzucać do nowej tablicy. Jeżeli używasz for to zobacz coś takiego i jaki otrzymasz efekt:
Teraz już będziesz wiedział, że łatanie nie jest wymagane. Ba, jest jeszcze takie coś fajnego. Tylko tutaj musisz raczej wspomóc się dodatkową zmienna licznikiem.
Ten post edytował wookieb 19.05.2009, 11:21:56 |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 27 Pomógł: 3 Dołączył: 19.05.2009 Ostrzeżenie: (0%)
|
Wydaje mi się, że to wyczerpuje temat, dzięki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
|
|
|
|
![]() ![]() |
|
Aktualny czas: 19.12.2025 - 13:51 |