Re: per i programmatori che conoscono le regexp


Simone Dal Maso
 

Ciao,
grazie davvero dei vostri contributi, Alberto e Chris.
Ho sistemato le due stringhe uniformandole al file internazionale.
Era la cosa più logica in effetti.
Adesso rimangono una caterva di simboli matematici decisamente oscuri, ho provato a coinvolgere una persona che lavora al dipartimento di matematica dell'università di Padova, sono piuttosto ottimista!
Grazie ancora.

Il 20/05/2021 19:23, ChrisLM ha scritto:
Ciao,
non avevo notato questa differenza, o per lo meno faccio fatica a ricordare.
Fondamentalmente non cambia quasi nulla, nel senso, la combinazione tra parentesi quadre considera solo ed un unico carattere. Messa così nel symbols.dic italiano controlla anche diversi segni di punteggiatura che sono improbabili a fine frase.
Probabilmente quando sono stati aggiunti lo scopo era quello di ignorare errori di battitura. Per esempio in una stringa così:
"Oggi non vado a scuola.;"
Io sono un po' contrario a usare questi metodi, anche perché chi lavora sulla correzione di testo quel punto e virgola dopo il punto la passa liscia e dificilmente viene catturato dalla lettura.
Sono quindi in sintonia con quello che ha proposto Alberto.
Riguardo ai sintetizzatori, NVDA  lascia ampio gioco anche grazie a queste regex. Si possono verificare comportamenti diversi a fine frase , non solo riguardo l'intonazione differente per tipo di frase. Per esempio, un confronto al volo, eSpeak-ng riconosce al volo se la parola dopo un punto inizia con maiuscola, eloquence se ne frega e legge correttamente come se nulla fosse anche se dopo il punto c'è una minuscola.
Ma quì siamo già fuori dal processo dello screen reader.
Tornando alla regex, come già indicato da alberto, toglierei dalla combinazione tra parentesi quadre  la virgola, i due punti e il punto e virgola.
Se il testo è scritto male è giusto che lo screen reader legga male!
Chris.
Alberto Buffolino ha scritto il 20/05/2021 alle 17:27:
io farei una via di mezzo... considera che la regex internazionale:
(?<=[^\s.])\.(?=[\"'”’)\s]|$)
si traduce con "punto, preceduto da qualunque cosa non sia uno spazio o un punto, e seguito da la roba fra quadre o un fine riga".
Ora, se guardi la nostra regex:
(?<=[^\s.])\.(?=[\"'”’)\s\],;:»]|$)
vedi che, nell'ultimo gruppo, in più abbiamo la chiusa quadra, virgola, punto e virgola, due punti e le chiuse doppie virgolette.
Così a naso, io terrei solo la chiusa quadra e le chiuse doppie virgolette, tutti gli altri casi fatico un po' a considerarli fine frase... idem per il punto esclamativo.
Sentiamo comunque che dice Chris, che ha lavorato anche su espeak.

Join nvda-it@groups.io to automatically receive all group messages.