Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Rozdzielenie tekstu na zdania.
Forum PHP.pl > Forum > PHP
Gugsen
Witam,

Pisze sobie dosyć skomplikowany system typu artelis.pl, jednak muszę w nim dbać o unikalność wprowadzanych tekstów.
Chciałbym rozdzielać tekst na zdania, ale problem w tym, że dane zdanie może być zakończone nie tylko kropką, ale tez np. pytajnikiem czy wykrzyknikiem.

Jak rozgryźć ten problem? Jak podzielić tekst:

Lubię PHP. Lubisz PHP? Kocham PHP!

By otrzymać:

Lubię PHP
Lubisz PHP
Kocham PHP

Proszę jeśli to możliwe o nakierowanie, napisze to sam ew. zapłacę smile.gif

Pozdrowienia!
Łukasz
erix
  1. preg_match('#([A-Z]{1}[^\.|\?|!|\?!]+)#si', $str, $arr);

Pisane z palca.
owi
badz tez cytujac php.net


  1. //the function
  2. //Param 1 has to be an Array
  3. //Param 2 has to be a String
  4. function multiexplode ($delimiters,$string) {
  5. $ary = explode($delimiters[0],$string);
  6. array_shift($delimiters);
  7. if($delimiters != NULL) {
  8. foreach($ary as $key => $val) {
  9. $ary[$key] = multiexplode($delimiters, $val);
  10. }
  11. }
  12. return $ary;
  13. }
  14.  
  15. // Example of use
  16. $string = "1-2-3|4-5|6:7-8-9-0|1,2:3-4|5";
  17. $delimiters = Array(",",":","|","-");
  18.  
  19. $res = multiexplode($delimiters,$string);
  20. echo '<pre>';
  21. print_r($res);
  22. echo '</pre>';
  23.  



zaleznie co koledze wygodniejsze
flashdev
google -> regexp

Na początku w wyrażeniu wrzuć litery, cyfry, spacja, przecinek ( [a-ż0-9 ,]+ ), a na koniec wyrażenia korzystając z operatora lub zakończenie zdania ( (\?|\.|!) ).
Gugsen
Podziękował!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.