Functie corectare punctuatie

Salut, a facut cineva pana acum o functie pentru a corecta punctuatia dintr-un text?

  1. sa inlocuiasca mai multe spatii cu unul

  2. sa anuleze spatiile dinaintea punctuatiei si sa puna spatiu dupa punctuatie.

  3. sa nu puna spatiu dupa separatorul de zecimale a unui numar…

    Tomis Plus , garsoniera decomandata.confort lux ,suprafata 42.54 m² mobilata .Etajul 6/6 etaje !

sa devina

Tomis Plus, garsoniera decomandata. Confort lux, suprafata 42.54 m² mobilata. Etajul 6/6 etaje!

sa scoata si virgula dintre subiect si predicat? :smiley:

sunt destul de periculoase astea, depinde mult de textul input. in alta ordine de idei, mie-mi plac anunturile scrise cu picioarele, iti faci o idee despre vanzator.

7 Likes

Some people, when confronted with a problem, think “I know, I’ll use regular expressions.” Now they have two problems.

Acestea fiind spuse, cred că poți face diverse combinații:

  • mai mult de două spații după un cuvânt: (\b)?\s{2,}
  • punct sau virgulă spațiate aiurea: (\b)\s{1,}(,|\.)

Hmm, punctul 3 e problematic. Se dau urmatoarele premise:

  1. In romana separatorul de zecimale corect este virgula, nu punct.
  2. Daca nu moderezi anunturile, nu le poti impune oamenilor sa scrie toate cuvintele necesare.

Tinand cont de 1 si 2, cum faci in cazul propozitiei urmatoare (spatiul intre virgula si 5):

Apartament 4 camere, zona Tineretului, etaj 2, 52 mp

Si eu zic sa nu iti bati capul. Daca ii lasi liberi, oamenii vor scrie anunturile in nspe moduri diferite (ce faci cu aia care scriu doar cu CAPS?), nu vad cum ai putea sa te gandesti la toate posibilitatile.

1 Like

Pai daca dupa virgula e spatiu + un caracter numeric … las asa. Important e ca inainte de virgula aia sa nu fie spatiu. Deci exemplul tau ar trebui sa ramana fix asa dpv al punctuatiei.

Pai daca dupa virgula e spatiu + un caracter numeric … las asa

Pai astea se contrazic. Ori tai spatiul dupa un separator de zecimale (punct sau virgula) care sta intre doua caractere numerice, ori nu. Indiferent cum faci, lasi loc de scris gresit. D-aia e mai bine sa nu te complici.

Daca site-ul este unul cu tematica de ce nu folosesti custom fields?
Asa vei reusi sa iti formatezi continutul in cel mai elegant mod cu putinta.

Am asa ceva insa este vorba despre trimiterea anunturilor catre un ziar. Si omul poate edita contentul, deci, poate scrie incorect dpv al punctuatiei.

Din proprie experienta, cand incerci sa educi prosti iti trebuie foarte multa energie. Si cel mai probabil n-o sa reusesti. Stiu ca nu te ajuta cu nimic postul asta, dar poate te fac sa te gandesti la o alta abordare.

2 Likes

Nu`i vorba de gandirea mea ci de a celui ce imi cere asta :smile:

ii explici ca nu se prea poate. daca-l ai ca client e datoria ta

:slight_smile: Ionut stie cu cine am de`a face… Nu se prea poate explica.
Oricum, pana la urma nu e vorba de a corecta gramatical o fraza ci de a aseza semnele de punctuatie gasite, asa cum trebuie. Cu spatiu dupa . , imediat dupa terminarea unui cuvant.

$bio = preg_replace('#(\b)\s{1,}(,|\.|!)#i', '$2 ', $bio);
$bio = preg_replace('#[a-z]+\.#i', '$0 ', $bio);
$bio = preg_replace('#(\b)?\s{2,}#i', ' ', $bio);
$bio = preg_replace('/([\.!\?]\s+|\A)(\w)/e', '"$1" . strtoupper("$2")', $bio);

O: Tomis Plus     , garson  iera   decomandata.confort lux ,suprafata 42.54 m² mobil. ata .Etajul 6/6 etaje !

M: Tomis Plus, garson iera decomandata. Confort lux, suprafata 42.54 m² mobil. Ata. Etajul 6/6 etaje!  

Asta pare sa-si faca treaba.

1 Like