Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wyrazenia regularne
Forum PHP.pl > Forum > PHP
waXain
Witam
Problemik jest taki...
mam zapis:

  1. <?php
  2.  
  3. $regex = &#092;"{(s|b)(\".strtolower($tabSkroty[$a]['skrot']).\")(s|$|.|;|-|,)}\";
  4.  
  5. if (preg_match($regex, strtolower($tabForm['trescText'])))
  6. {
  7.  
  8. $regex2 = &#092;"{(\".$tabSkroty[$a]['skrot'].\")}\";
  9.  
  10. $tabForm['trescText'] = preg_replace($regex2, $tabSkroty[$a]['skrot'] , $tabForm['trescText']);
  11. }
  12.  
  13. ?>


i dziala...Jednak jak zrobic by reszta tekstu [oprocz tych z tablicy skrotow] byla z malych liter+duza litera na poczatku zdania. Siedze nad tym od dluzszego czasu i nie potrafie znalezc rozwiazania [tym bardziej ze cala funkcja jest bardziej skomplikowana: szukanie wyrazow niedozwolonych, blokowanie, kropkowanie itp]. Caly tekst juz mam przeformatowany brakuje mi jedynie odpowiedzi na to (pewnie proste) pytanie smile.gif


pozdrawiam i z gory dziekuje za wszelka pomoc


[zmoderowane]
FiDO: prosze uzywac BBCode!!
lukass
Cytat(waXain @ 2004-12-13 10:07:43)
Witam
Problemik jest taki...
mam zapis:

  1. <?php
  2.  
  3. $regex = &#092;"{(s|b)(\".strtolower($tabSkroty[$a]['skrot']).\")(s|$|.|;|-|,)}\";  
  4.       
  5.       if (preg_match($regex, strtolower($tabForm['trescText'])))
  6.       {
  7.         
  8.         $regex2 = &#092;"{(\".$tabSkroty[$a]['skrot'].\")}\";
  9.         
  10.         $tabForm['trescText'] = preg_replace($regex2, $tabSkroty[$a]['skrot'] , $tabForm['trescText']);
  11.       }
  12.  
  13. ?>


i dziala...Jednak jak zrobic by reszta tekstu [oprocz tych z tablicy skrotow] byla z malych liter+duza litera na poczatku zdania. Siedze nad tym od dluzszego czasu i nie potrafie znalezc rozwiazania [tym bardziej ze cala funkcja jest bardziej skomplikowana: szukanie wyrazow niedozwolonych, blokowanie, kropkowanie itp]. Caly tekst juz mam przeformatowany brakuje mi jedynie odpowiedzi na to (pewnie proste) pytanie smile.gif


pozdrawiam i z gory dziekuje za wszelka pomoc


[zmoderowane]
FiDO: prosze uzywac BBCode!!

Czesc wladziu smile.gif,

nie rozumiem zbytnio kodu tongue.gif, ale jesli chodzi o zamiane znakow na duze na poczatku zdania wydaje mi sie ze wystarczy dodac wyrazenie ktore zamienialoby pierwsza litere ktora znajduje sie po ". " (kropka i spacja) oraz dodac aby pierwszy znak w tekscie (zakladajac ze jest to pierwsze zdanie) zamienial na duza litere (^).
waXain
no tak z tym raczej wiekszego problemu nie ma, jednak problem sie komplikuje przy chocby takim zdaniu: Ala ma DUZEGO kota i malego PSA.

W zdaniu tym slowo DUZEGO musi zostac z duzych liter, gdyz zostalo dodane do tabeli slow pisanych z duzych liter (mniejsza o to, po co to jest...) natomiast slowo PSA nie jest w tej tabeli i musi zostac zapisane z malych liter. Tak wiec zdanie docelowe powinno wygladac tak: Ala ma DUZEGO kota i malego psa.

Problem z zamiana pierwszego znaku z kazdego nowo ropoczetego zdania (po kropce) nie jest tak naprawde problemem. Problemem jest jak zrobic, by cale zdanie bylo przeformatowane na male litery (oprocz slow z tabeli slow), a pierwsza litera kazdego zdania byla pisana z duzej? smile.gif
lukass
Cytat(waXain @ 2004-12-14 08:56:57)
no tak z tym raczej wiekszego problemu nie ma, jednak problem sie komplikuje przy chocby takim zdaniu: Ala ma DUZEGO kota i malego PSA.

W zdaniu tym slowo DUZEGO musi zostac z duzych liter, gdyz zostalo dodane do tabeli slow pisanych z duzych liter (mniejsza o to, po co to jest...) natomiast slowo PSA nie jest w tej tabeli i musi zostac zapisane z malych liter. Tak wiec zdanie docelowe powinno wygladac tak: Ala ma DUZEGO kota i malego psa.

Problem z zamiana pierwszego znaku z kazdego nowo ropoczetego zdania (po kropce) nie jest tak naprawde problemem. Problemem jest jak zrobic, by cale zdanie bylo przeformatowane na male litery (oprocz slow z tabeli slow), a pierwsza litera kazdego zdania byla pisana z duzej? smile.gif

Musisz rozbic tekst na slowa pojedyncze (explode wg: " ") i sprawdzac kazde z osobna czy jest w tablicy i jesli nie ma to zamieniac na male...
waXain
Dzieki smile.gif
Myslalem o rozwiazaniu o ktorym piszesz, jednak wydaje mi sie ze byloby ono dosc wolne. Poki co wpadlem na troche inny pomysl, by przy slowach z tablicy slow wstawiac jakis unikalny znacznik [np. |], a pozniej przy kolejnym sprawdzaniu wyrazeniem regularnym zamienic wszystkie wyrazy na male wg. wyrazenia [w ktorym nie bedzie |]. Mysle ze zadziala smile.gif
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.