Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Dopo oltre 4 anni si rinnova la serie Sony Alpha 7 con la quinta generazione, che porta in dote veramente tante novità a partire dai 30fps e dal nuovo sensore partially stacked da 33Mpixel. L'abbiamo provata per un breve periodo, ecco come è andata dopo averla messa alle strette.
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1
realme e Aston Martin Aramco F1 Team si sono (ri)unite dando alla vita un flagship con chip Snapdragon 8 Elite Gen 5 e design esclusivo ispirato alle monoposto di Formula 1. La Dream Edition introduce la nuova colorazione Lime Essence abbinata al tradizionale Aston Martin Racing Green, decorazioni intercambiabili personalizzate e una confezione a tema F1, intorno a uno smartphone dall'ottima dotazione tecnica con batteria da 7000mAh ricaricabile a 120W e isola fotografica intercambiabile
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
Abbiamo partecipato all'OVHcloud Summit 2025, conferenza annuale in cui l'azienda francese presenta le sue ultime novità. Abbiamo parlato di cloud pubblico e privato, d'intelligenza artificiale, di computer quantistici e di sovranità. Che forse, però, dovremmo chiamare solo "sicurezza"
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 20-05-2013, 08:34   #1
candela
Member
 
L'Avatar di candela
 
Iscritto dal: May 2003
Messaggi: 284
regex pipe (|)

Buon giorno,
sto utilizzando le espressioni regolari per validare una serie di dati in un programma, ma ho dei problemi con le espressioni alternative.
Per esempio, un valore tra 0 e 100 con valore 999 per non noto.
le singole parti mi funzionano correttamente (nessuna di queste accetta 200):
^[0-9]{1,2}$
^100$
^999$
se faccio:
^[0-9]{1,2}|100|999$
non funziona più e mi accetta pure 200 (tanto per fare un esempio)!

Cosa sbaglio nelle condizioni con il | (pipe)?
grazie
__________________

CANON A80 --> SX110 --> 550D
candela è offline   Rispondi citando il messaggio o parte di esso
Old 20-05-2013, 09:29   #2
The_ouroboros
Senior Member
 
L'Avatar di The_ouroboros
 
Iscritto dal: May 2007
Città: Milano
Messaggi: 7103
Codice:
^(999|[0-9][0-9]|100)$
__________________
Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go
The_ouroboros è offline   Rispondi citando il messaggio o parte di esso
Old 20-05-2013, 13:30   #3
candela
Member
 
L'Avatar di candela
 
Iscritto dal: May 2003
Messaggi: 284
grazie,
nel frattempo avevo risolto chidendo e riaprendo la stringa:
Codice:
^[0-9]{1,2}$|^100$|^999$
credi che ci sia differenza tra le due?
__________________

CANON A80 --> SX110 --> 550D
candela è offline   Rispondi citando il messaggio o parte di esso
Old 20-05-2013, 13:44   #4
The_ouroboros
Senior Member
 
L'Avatar di The_ouroboros
 
Iscritto dal: May 2007
Città: Milano
Messaggi: 7103
il | usa tutto quello che c'è a destra o sinistra quindi se vuoi che ^$ sia sempre preso devi sempre riprenderlo

Pensala come

Codice:
a|b a "oppure" b

In alternativa se vuoi prendere abba|aba puoi usare abb?a (? rende opzionale la lettera precedente o gruppo se racchiuso tra () )
__________________
Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go
The_ouroboros è offline   Rispondi citando il messaggio o parte di esso
Old 20-05-2013, 13:46   #5
The_ouroboros
Senior Member
 
L'Avatar di The_ouroboros
 
Iscritto dal: May 2007
Città: Milano
Messaggi: 7103
puoi provarle "live" qui cmq: http://regexpal.com/
__________________
Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go
The_ouroboros è offline   Rispondi citando il messaggio o parte di esso
Old 21-11-2014, 15:20   #6
toni00t
Member
 
Iscritto dal: Aug 2012
Messaggi: 268
Quote:
Originariamente inviato da The_ouroboros Guarda i messaggi
il | usa tutto quello che c'è a destra o sinistra quindi se vuoi che ^$ sia sempre preso devi sempre riprenderlo

Pensala come

Codice:
a|b a "oppure" b

In alternativa se vuoi prendere abba|aba puoi usare abb?a (? rende opzionale la lettera precedente o gruppo se racchiuso tra () )
qual'è la differenza tra
Codice:
egrep '^(|1)'
e

Codice:
egrep '^(.|1)'
?
toni00t è offline   Rispondi citando il messaggio o parte di esso
Old 21-11-2014, 15:25   #7
The_ouroboros
Senior Member
 
L'Avatar di The_ouroboros
 
Iscritto dal: May 2007
Città: Milano
Messaggi: 7103
.


Sent from my iPad Air using Tapatalk
__________________
Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go
The_ouroboros è offline   Rispondi citando il messaggio o parte di esso
Old 21-11-2014, 16:03   #8
toni00t
Member
 
Iscritto dal: Aug 2012
Messaggi: 268
Quote:
Originariamente inviato da The_ouroboros Guarda i messaggi
.


Sent from my iPad Air using Tapatalk
??
toni00t è offline   Rispondi citando il messaggio o parte di esso
Old 21-11-2014, 16:11   #9
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Non credo che il pattern '^(|1)' sia sintatticamente corretto, stai chiedendo di identificare una stringa che inizia con "1" oppure con boh, il che non ha alcun senso, deve esserci sempre un espressione a sinistra del carattere "|".

Ultima modifica di Daniels118 : 21-11-2014 alle 16:50.
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
Old 21-11-2014, 16:21   #10
toni00t
Member
 
Iscritto dal: Aug 2012
Messaggi: 268
Quote:
Originariamente inviato da Daniels118 Guarda i messaggi
Non credo che il pattern '^(|1)' sia sintatticamente corretto, stai chiedendo di identificare una stringa che inizia con "1" oppure con boh, il che non ha alcun senso, deve esserci sempre un espressione a sinistra del carattere "|".
allora questo cosa vuol dire ?
Codice:
ls -pR | egrep -v '(^(|\..*:)|/)$'
toni00t è offline   Rispondi citando il messaggio o parte di esso
Old 21-11-2014, 16:47   #11
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Mi correggo, ha perfettamente senso, se non c'è nulla vuol dire che deve identificare una stringa vuota.
Tornando alla tua domanda quindi:
'^(|1)' prende tutte le righe vuote o che cominciano con "1"
'^(.|1)' prende tutte le righe che cominciano con un qualunque carattere o con "1" (che è una condizione superflua)
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
Old 21-11-2014, 16:51   #12
The_ouroboros
Senior Member
 
L'Avatar di The_ouroboros
 
Iscritto dal: May 2007
Città: Milano
Messaggi: 7103
Quote:
Originariamente inviato da Daniels118 Guarda i messaggi
Mi correggo, ha perfettamente senso, se non c'è nulla vuol dire che deve identificare una stringa vuota.
Tornando alla tua domanda quindi:
'^(|1)' prende tutte le righe vuote o che cominciano con "1"
'^(.|1)' prende tutte le righe che cominciano con un qualunque carattere o con "1" (che è una condizione superflua)
Infatti con .* prendi 0 o più caratteri (con .? 1 o più)
__________________
Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go
The_ouroboros è offline   Rispondi citando il messaggio o parte di esso
Old 21-11-2014, 17:09   #13
toni00t
Member
 
Iscritto dal: Aug 2012
Messaggi: 268
Quote:
Originariamente inviato da Daniels118 Guarda i messaggi
Mi correggo, ha perfettamente senso, se non c'è nulla vuol dire che deve identificare una stringa vuota.
Tornando alla tua domanda quindi:
'^(|1)' prende tutte le righe vuote o che cominciano con "1"
'^(.|1)' prende tutte le righe che cominciano con un qualunque carattere o con "1" (che è una condizione superflua)
ok grazie adesso è chiaro
toni00t è offline   Rispondi citando il messaggio o parte di esso
Old 22-11-2014, 10:37   #14
SnakePlissken
Member
 
L'Avatar di SnakePlissken
 
Iscritto dal: Aug 2004
Messaggi: 39
Quote:
Originariamente inviato da Daniels118 Guarda i messaggi
'^(|1)' prende tutte le righe vuote o che cominciano con "1"
Non mi risulta: '^(|1)' prende tutte le righe.
  1. ^ prendi l'inizio della stringa
  2. (|1) prendi niente oppure prendi '1'

Codice:
# echo "ciccio" | grep -P '^(|1)'
ciccio
In questo caso prende prima l'inizio della stringa e poi niente (in pratica non consuma nessun carattere, e lo si può vedere aggiungendo l'opzione -o a grep). Se (in altri contesti) cattura solo righe vuote è perché ci sono impliciti ^ e $.
__________________
Quello che davvero mi interessa è se Dio, quando creò il mondo, aveva scelta.
SnakePlissken è offline   Rispondi citando il messaggio o parte di esso
Old 22-11-2014, 11:12   #15
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Mi sa che hai ragione, sono un po' arrugginito, mi serve un bel ripasso.
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
Old 22-11-2014, 16:17   #16
toni00t
Member
 
Iscritto dal: Aug 2012
Messaggi: 268
Quote:
Originariamente inviato da SnakePlissken Guarda i messaggi
Non mi risulta: '^(|1)' prende tutte le righe.
  1. ^ prendi l'inizio della stringa
  2. (|1) prendi niente oppure prendi '1'

Codice:
# echo "ciccio" | grep -P '^(|1)'
ciccio
In questo caso prende prima l'inizio della stringa e poi niente (in pratica non consuma nessun carattere, e lo si può vedere aggiungendo l'opzione -o a grep). Se (in altri contesti) cattura solo righe vuote è perché ci sono impliciti ^ e $.
si ma tu hai usato le regex di Perl...
toni00t è offline   Rispondi citando il messaggio o parte di esso
Old 22-11-2014, 19:47   #17
SnakePlissken
Member
 
L'Avatar di SnakePlissken
 
Iscritto dal: Aug 2004
Messaggi: 39
Quote:
Originariamente inviato da toni00t Guarda i messaggi
si ma tu hai usato le regex di Perl...
Non ti far confondere dalla -P, quell'espressione vale nell'implementazione Perl, .NET, Javascript... L'unica differenza in questo caso è che senza -P devi fare l'escape dei caratteri speciali:
Codice:
# echo "ciccio" | grep '^\(\|1\)'
ciccio
Così ti torna?
__________________
Quello che davvero mi interessa è se Dio, quando creò il mondo, aveva scelta.
SnakePlissken è offline   Rispondi citando il messaggio o parte di esso
Old 22-11-2014, 20:12   #18
toni00t
Member
 
Iscritto dal: Aug 2012
Messaggi: 268
Quote:
Originariamente inviato da SnakePlissken Guarda i messaggi
Non ti far confondere dalla -P, quell'espressione vale nell'implementazione Perl, .NET, Javascript... L'unica differenza in questo caso è che senza -P devi fare l'escape dei caratteri speciali:
Codice:
# echo "ciccio" | grep '^\(\|1\)'
ciccio
Così ti torna?
sarà la stanchezza , ma mi sto confondendo :
io leggo ;greppa o stringa vuota o stringa che comincia con 1.Perchè mi stampa "ciccio"?
toni00t è offline   Rispondi citando il messaggio o parte di esso
Old 23-11-2014, 11:11   #19
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Perché non è corretto "greppa o stringa vuota o stringa che comincia con 1", ma tutte le stringhe che cominciano con una stringa vuota (e prima di qualunque stringa possiamo immaginare che ci sia una stringa vuota), e tutte quelle che cominciano con "1". La seconda condizione è inclusa nella prima, quindi l'espressione da riscontro per qualunque stringa.
Se invece l'espressione fosse stata '^(|1.*)$', oppure '^($|1)', sarebbe stata corretta la prima affermazione.
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
Old 23-11-2014, 16:17   #20
toni00t
Member
 
Iscritto dal: Aug 2012
Messaggi: 268
Quote:
Originariamente inviato da Daniels118 Guarda i messaggi
Perché non è corretto "greppa o stringa vuota o stringa che comincia con 1", ma tutte le stringhe che cominciano con una stringa vuota (e prima di qualunque stringa possiamo immaginare che ci sia una stringa vuota), e tutte quelle che cominciano con "1". La seconda condizione è inclusa nella prima, quindi l'espressione da riscontro per qualunque stringa.
Se invece l'espressione fosse stata '^(|1.*)$', oppure '^($|1)', sarebbe stata corretta la prima affermazione.
scusa , ma quello è un or logico non un and !
dovrebbe essere

"tutte le stringhe che cominciano con una stringa vuota (e prima di qualunque stringa possiamo immaginare che ci sia una stringa vuota), o tutte quelle che cominciano con "1"."
toni00t è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator Sony Alpha 7 V, anteprima e novità della ...
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1 realme GT 8 Pro Dream Edition: prestazioni da fl...
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum OVHcloud Summit 2025: le novità del cloud...
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI C...
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro DJI Neo 2 in prova: il drone da 160 grammi guada...
HBO Max debutta in Italia: data, contenu...
Qual è lo smartphone Android pi&u...
Il camion elettrico Semi è davver...
Instagram limita gli hashtag a tre per p...
Le migliori offerte Amazon del momento: ...
RTI e Medusa denunciano Perplexity AI: p...
Avviatori, compressori e accessori auto:...
Samsung Galaxy S26: un leak anticipa le ...
Windows 11, KB5070311 sistema e rompe la...
DJI Mini 3 con controller DJI RC al prez...
Horses riceve il ban anche da Epic: rifi...
Motore elettrico a flusso assiale di Yas...
India, la retromarcia dopo le polemiche:...
La Germania accende il suo colosso eolic...
Mega Risparmi Amazon Haul: fino al 60% s...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 13:35.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v