Nella descrizione di un file di configurazione ho trovato delle regole espresse con un formalismo simile a quello utilizzato nei corsi di 'automi e linguaggi formali', ma con differenze sostanziali. Per intenderci, intendo delle stringhe descrittive con significati del tipo:
0-9 i numeri da zero a nove
a-z le lettere minuscole
A-Z le lettere maiuscole
[ x ]... ripetizione contenuto zero o più volte
( x )... ripetizione contenuto una o più volte
'x' un singolo carattere
e così via.
Con questo formalismo, un numero decimale viene descritto come
['-']('0-9'['0-9']...['.'['0-9'['0-9']...]])|('.'0-9'['0-9']...)
che descrive numeri del tipo 0, 1, 1.2, 0.1, .12, ecc.
Esiste uno standard per questo tipo di descrizione (ISO o similare)?
Descrizione linguaggio
Moderatori:
Paolino,
fairyvilje
5 messaggi
• Pagina 1 di 1
1
voti
-

PietroBaima
90,7k 7 12 13 - G.Master EY

- Messaggi: 12207
- Iscritto il: 12 ago 2012, 1:20
- Località: Londra
1
voti
venexian ha scritto:['-']('0-9'['0-9']...['.'['0-9'['0-9']...]])|('.'0-9'['0-9']...)
che descrive numeri del tipo 0, 1, 1.2, 0.1, .12, ecc.
Da esporto delle regular expression l'espressione non è proprio scritta bene e non copre tutti i possibili casi (+123, 1.2E-3)
Il linguaggio di programmazione con la più completa e complessa implementazione delle regular expression è il Perl:
https://perldoc.perl.org/perlre.html
Esisto dei programmi per verificare come viene elaborata la stringa in ingresso attraverso una regular expression, alcuni sono anche on-line:
https://regexr.com
https://regex101.com
Esistono collezioni di regular expression già pronte, ad esempio:
http://regexlib.com
0
voti
Grazie. 'Espressioni Regolari' era proprio l'informazione che cercavo.
Da quanto vedo, però, non esiste un unico standard, ma vari standard per vari casi (come a dire nessuno standard). A dire il vero, per un argomento così importante mi sarei aspettato un ISO specifico.
A dire il vero, è scritta bene.
Non è l'espressione per ogni numero in virgola mobile, ma quella per i campi numerici dello standard ISO-6983 (il G-Code utilizzato nelle macchine a controllo numerico). Non segue lo standard IEEE, ma identifica correttamente tutti i casi.
Da quanto vedo, però, non esiste un unico standard, ma vari standard per vari casi (come a dire nessuno standard). A dire il vero, per un argomento così importante mi sarei aspettato un ISO specifico.
xyz ha scritto:Da esporto delle regular expression l'espressione non è proprio scritta bene e non copre tutti i possibili casi (+123, 1.2E-3)
A dire il vero, è scritta bene.
Non è l'espressione per ogni numero in virgola mobile, ma quella per i campi numerici dello standard ISO-6983 (il G-Code utilizzato nelle macchine a controllo numerico). Non segue lo standard IEEE, ma identifica correttamente tutti i casi.
0
voti
venexian ha scritto:...non esiste un unico standard, ma vari standard...
Un tentativo di standard è stato fatto per i sistemi operativi POSIX:
http://man7.org/linux/man-pages/man7/regex.7.html
ma poi ogni programma ha la sua implementazione. Le regole base sono rispettate ma poi ci sono delle differenze e estensioni.
xyz ha scritto:Non è l'espressione per ogni numero in virgola mobile, ma quella per i campi numerici dello standard ISO-6983
Ok, quindi sono numeri molto specifici non quelli IEEE 754.
5 messaggi
• Pagina 1 di 1
Chi c’è in linea
Visitano il forum: Nessuno e 15 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)

pigreco]=π