Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DJI Mic Mini 2: audio 48 kHz / 24-bit e protocollo OsmoAudio sotto i 100 Euro
DJI Mic Mini 2: audio 48 kHz / 24-bit e protocollo OsmoAudio sotto i 100 Euro
DJI presenta Mic Mini 2, un sistema microfonico wireless ultra-compatto progettato per democratizzare l'audio di alta qualità nella fascia entry-level. Con un peso di soli 11 grammi per il trasmettitore elimina i fastidi tipici dei modelli più pesanti sui vestiti. Nonostante la miniaturizzazione Mic Mini 2 offre prestazioni tecniche di rilievo: registrazione omnidirezionale a 48 kHz/24-bit, tre preset vocali (Regular, Bright, Rich) e un sistema di cancellazione attiva del rumore a due livelli.
Recensione Moto G77: display AMOLED e buona autonomia per il midrange economico
Recensione Moto G77: display AMOLED e buona autonomia per il midrange economico
Motorola propone in fascia media il nuovo Moto G77 5G, uno smartphone che punta sul display AMOLED da 1.5K a 120Hz, e sulla fotocamera da 108 MP con stabilizzazione ottica per affrontare la fascia media. Il tutto insieme a una batteria da 5200mAh in soli 7,3 millimetri di spessore, con una scocca certificata con standard militari
DJI Lito 1 e Lito X1 recensione: i nuovi droni per principianti che non si fanno mancare nulla
DJI Lito 1 e Lito X1 recensione: i nuovi droni per principianti che non si fanno mancare nulla
DJI ha appena ufficializzato la serie Lito, la sua nuova gamma di droni entry-level destinata a chi si avvicina per la prima volta alla fotografia aerea. Al centro dell'annuncio ci sono due modelli ben distinti per fascia di prezzo e specifiche tecniche: DJI Lito 1 e DJI Lito X1. Entrambi si collocano sotto la soglia regolamentare dei 249 grammi, che permette di volare con requisiti burocratici più semplici rispetto ai droni più pesanti.
Tutti gli articoli Tutte le news

Vai al Forum
Discussione Chiusa
 
Strumenti
Old 26-07-2010, 19:06   #1
DNAx86
Member
 
Iscritto dal: Dec 2007
Città: Friuli
Messaggi: 154
[Java] espressione regolare

vorrei tagliare il testo di un stringa che è racchiuso tra parentesi graffe, esempio:
abc de fg {456} hil 568 abc
deve diventare:
456

Ho letto e riletto varie guide ma non ci sono riuscito,
queste espressioni regolari non le ho capite.

Qualcuno mi saprebbe dare l'espressione regolare che mi serve?
__________________
iPhone4, MacBook
DNAx86 è offline  
Old 26-07-2010, 19:28   #2
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
le espressioni regolari non servono a modificare una stringa di input, servono solo a riconoscere. se tu dai una stringa in pasto ad un'espressione regolare quella ti risponde solo "si" o "no", non ti puó rispondere "456".
fero86 è offline  
Old 26-07-2010, 19:58   #3
DNAx86
Member
 
Iscritto dal: Dec 2007
Città: Friuli
Messaggi: 154
Quote:
Originariamente inviato da fero86 Guarda i messaggi
le espressioni regolari non servono a modificare una stringa di input, servono solo a riconoscere. se tu dai una stringa in pasto ad un'espressione regolare quella ti risponde solo "si" o "no", non ti puó rispondere "456".
intendevo dire che mi srve un espressione regolare da usare come delimitatore con una funzione apposita che uso per sezionare la stringa,
es:String.split(), StringTokenizer, etc etc...

so che si può fare, lo già fatto.
Vorrei sapere quel'è l'espressione regolare che fà a caso mio, dato che non ciriesco da solo
__________________
iPhone4, MacBook
DNAx86 è offline  
Old 26-07-2010, 20:08   #4
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
Quote:
Originariamente inviato da fero86 Guarda i messaggi
le espressioni regolari non servono a modificare una stringa di input, servono solo a riconoscere. se tu dai una stringa in pasto ad un'espressione regolare quella ti risponde solo "si" o "no", non ti puó rispondere "456".
In realtà formalmente le espressioni regolari descrivono linguaggi regolari. Ovviamente vengono utilizzate per la ricerca all' interno di stringhe, ma passandole come argomento ad alcuni metodi della classe String di Java è possibile operare alcune operazioni , come il substring o la sostituzione di caratteri.
nuovoUtente86 è offline  
Old 26-07-2010, 20:27   #5
DNAx86
Member
 
Iscritto dal: Dec 2007
Città: Friuli
Messaggi: 154
C'è qualche programmatore java che conosce la giusta stringa (espressione regolare) da usare come delimitatore con StringTokenizer o String.split() nel caso sopra-citato?

Link: http://download.oracle.com/docs/cd/E...Tokenizer.html
__________________
iPhone4, MacBook

Ultima modifica di DNAx86 : 26-07-2010 alle 20:30.
DNAx86 è offline  
Old 26-07-2010, 20:44   #6
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
Quote:
Originariamente inviato da DNAx86 Guarda i messaggi
vorrei tagliare il testo di un stringa che è racchiuso tra parentesi graffe, esempio:
abc de fg {456} hil 568 abc
deve diventare:
456

Ho letto e riletto varie guide ma non ci sono riuscito,
queste espressioni regolari non le ho capite.

Qualcuno mi saprebbe dare l'espressione regolare che mi serve?
prima e dopo le graffe come possono variare le stringhe?
nuovoUtente86 è offline  
Old 26-07-2010, 20:52   #7
MEMon
Senior Member
 
Iscritto dal: Dec 2002
Messaggi: 3359
Ciao, questa ti prende solo i numeri compresi fra le graffe
Codice:
(?<={)\d+(?=})
edit: l'errore era che andava fatto l'escape anche delle graffe così
Codice:
(?<=\{)\d+(?=\})

Ultima modifica di MEMon : 26-07-2010 alle 23:58.
MEMon è offline  
Old 26-07-2010, 21:50   #8
DNAx86
Member
 
Iscritto dal: Dec 2007
Città: Friuli
Messaggi: 154
Quote:
Originariamente inviato da nuovoUtente86 Guarda i messaggi
prima e dopo le graffe come possono variare le stringhe?
Stringhe tipo:
javax.swing.event.ListSelectionEvent[ source=javax.swing.DefaultListSelectionModel 1491344323 ={2} firstIndex= 2 lastIndex= 2 isAdjusting= false ]

A me interessa estrarre i numeri (anche a più cifre) tra {}, in questo caso {2} => 2



Quote:
Originariamente inviato da MEMon Guarda i messaggi
Ciao, questa ti prende solo i numeri compresi fra le graffe
Codice:
(?<={)\d+(?=})
ottengo questo errore:
Exception in thread "AWT-EventQueue-0" java.util.regex.PatternSyntaxException: Illegal repetition near index 3
(?<={)d+(?=})
__________________
iPhone4, MacBook
DNAx86 è offline  
Old 26-07-2010, 22:15   #9
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
dovrebbe bastarti fare split("[{]|[}]"); ed utilizzare l' elemento in posizione 1 del vettore.
nuovoUtente86 è offline  
Old 26-07-2010, 22:38   #10
MEMon
Senior Member
 
Iscritto dal: Dec 2002
Messaggi: 3359
Quote:
Originariamente inviato da DNAx86 Guarda i messaggi
Stringhe tipo:
javax.swing.event.ListSelectionEvent[ source=javax.swing.DefaultListSelectionModel 1491344323 ={2} firstIndex= 2 lastIndex= 2 isAdjusting= false ]

A me interessa estrarre i numeri (anche a più cifre) tra {}, in questo caso {2} => 2





ottengo questo errore:
Exception in thread "AWT-EventQueue-0" java.util.regex.PatternSyntaxException: Illegal repetition near index 3
(?<={)d+(?=})
mmm strano che ottieni errore, hai messo due \\ prima del d visto che lo scrivi in una stringa?
Codice:
(?<={)\\d+(?=})

Ultima modifica di MEMon : 26-07-2010 alle 22:41.
MEMon è offline  
Old 26-07-2010, 22:41   #11
MEMon
Senior Member
 
Iscritto dal: Dec 2002
Messaggi: 3359
Quote:
Originariamente inviato da nuovoUtente86 Guarda i messaggi
dovrebbe bastarti fare split("[{]|[}]"); ed utilizzare l' elemento in posizione 1 del vettore.
Da quel che ho capito, lui vorrebbe usare la regex che sta chiedendo come splitter per uno split.
Perchè se il suo scopo ultimo è solo quello di prendere il numero all'interno delle graffe vi sono innumerevoli metodi
MEMon è offline  
Old 26-07-2010, 22:42   #12
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
Quote:
Originariamente inviato da DNAx86 Guarda i messaggi
intendevo dire che mi srve un espressione regolare da usare come delimitatore con una funzione apposita che uso per sezionare la stringa,
es:String.split(), StringTokenizer, etc etc...
allora usa le graffe come delimitatori, no? ad esempio chiama:

String.split("[{}]");



Quote:
Originariamente inviato da nuovoUtente86 Guarda i messaggi
In realtà formalmente le espressioni regolari descrivono linguaggi regolari.
come tu saprai i linguaggi regolari sono riconoscibili, infatti un motore di espressioni regolari dovrebbe essere in grado di "riconoscere" una stringa, cioé dire se fa parte o no del linguaggio regolare descritto da una certa espressione regolare.



Quote:
Ovviamente vengono utilizzate per la ricerca all' interno di stringhe, ma passandole come argomento ad alcuni metodi della classe String di Java è possibile operare alcune operazioni , come il substring o la sostituzione di caratteri.
il metodo String.substring non prende espressioni regolari. ad ogni modo non vedo cosa c'entri con ció la frase che ho precedentemente quotato.



Quote:
Originariamente inviato da MEMon Guarda i messaggi
Ciao, questa ti prende solo i numeri compresi fra le graffe
Codice:
(?<={)\d+(?=})
no, questa riconosce le stringhe contenenti numeri compresi tra graffe.
fero86 è offline  
Old 26-07-2010, 22:43   #13
MEMon
Senior Member
 
Iscritto dal: Dec 2002
Messaggi: 3359
Quote:
Originariamente inviato da fero86 Guarda i messaggi
no, questa riconosce le stringhe contenenti numeri compresi tra graffe.
No, quello fa quello che stato chiesto. Cattura i numeri SOLO se se la stringa è di questo tipo xxx{numeri}xxxx

Ultima modifica di MEMon : 26-07-2010 alle 22:45.
MEMon è offline  
Old 26-07-2010, 22:48   #14
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
Quote:
Originariamente inviato da MEMon Guarda i messaggi
No, quello fa quello che stato chiesto. Cattura i numeri SOLO se se la stringa è di questo tipo xxx{numeri}xxxx
ripeto, un'espressione regolare di per se' puó rispondere solo si o no, vero o falso, appartiene o non appartiene.

che poi vengano usate in algoritmi piu complessi per cercare prefissi, suffissi e sottostringhe é un altro discorso, ma in questo caso dovresti specificare in che modo va usata quell'espressione regolare, cioé a quale metodo va passata e di quale classe.
fero86 è offline  
Old 26-07-2010, 22:51   #15
MEMon
Senior Member
 
Iscritto dal: Dec 2002
Messaggi: 3359
Quote:
Originariamente inviato da fero86 Guarda i messaggi
ripeto, un'espressione regolare di per se' puó rispondere solo si o no, vero o falso, appartiene o non appartiene.

che poi vengano usate in algoritmi piu complessi per cercare prefissi, suffissi e sottostringhe é un altro discorso, ma in questo caso dovresti specificare in che modo va usata quell'espressione regolare, cioé a quale metodo va passata e di quale classe.
Va usata nello split come richiesto dal thread starter no?

Il fatto che una regex ti dice solo se c'è il match o no è ovvio, non c'è nemmeno bisogno di dirlo, ma ovviamente una regex si può usare per fare praticamente qualsiasi cosa nella manipolazione del testo.
MEMon è offline  
Old 26-07-2010, 22:52   #16
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
Quote:
Originariamente inviato da nuovoUtente86 Guarda i messaggi
dovrebbe bastarti fare split("[{]|[}]"); ed utilizzare l' elemento in posizione 1 del vettore.
Quote:
Originariamente inviato da fero86 Guarda i messaggi
allora usa le graffe come delimitatori, no? ad esempio chiama:

String.split("[{}]");
riflettendoci meglio peró soluzioni di questo genere possono fornire un risultato errato, come in questo caso:

123}456{789}876

l'output desiderato sarebbe "789" mentre invece si otterrebbe "456". inoltre, per come é stato posto il problema, non é chiaro quale output si vorrebbe ottenere in un caso come questo:

123{456{789}876

si dovrebbe ottenere "456{789" oppure "789"?
fero86 è offline  
Old 26-07-2010, 22:53   #17
MEMon
Senior Member
 
Iscritto dal: Dec 2002
Messaggi: 3359
Quote:
Originariamente inviato da fero86 Guarda i messaggi
le espressioni regolari non servono a modificare una stringa di input, servono solo a riconoscere. se tu dai una stringa in pasto ad un'espressione regolare quella ti risponde solo "si" o "no", non ti puó rispondere "456".
Questo assolutamente non è vero, l'applicazione principe di uan regexp e fare un match su una stringa, ovvero catturare solo quel che si vuole da una stringa, quindi una regexp può tornaryi solo 456 eccome.
Probabilmente non conosci molto bene questo strumento...
MEMon è offline  
Old 26-07-2010, 22:57   #18
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
Quote:
Originariamente inviato da MEMon Guarda i messaggi
Va usata nello split come richiesto dal thread starter no?
ma cosi non si ottiene una stringa, si ottiene un array di stringhe: quale elemento dovrei prendere per avere l'output finale?
ad ogni modo sarei curioso di provarla ma non funziona.



Quote:
Il fatto che una regex ti dice solo se c'è il match o no è ovvio, non c'è nemmeno bisogno di dirlo,
per te magari, anche se non l'avrei detto.



Quote:
ma ovviamente una regex si può usare per fare praticamente qualsiasi cosa nella manipolazione del testo.
molte operazioni invece possono essere risolte senza farne uso.
fero86 è offline  
Old 26-07-2010, 23:02   #19
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
Quote:
Originariamente inviato da MEMon Guarda i messaggi
Questo assolutamente non è vero, l'applicazione principe di uan regexp e fare un match su una stringa, ovvero catturare solo quel che si vuole da una stringa, quindi una regexp può tornaryi solo 456 eccome.
Probabilmente non conosci molto bene questo strumento...
come detto precedentemente nella discussione, un'espressione regolare non fa altro che descrivere un linguaggio riconoscibile, cioé un linguaggio a cui é possibile dire se una stringa appartiene o meno. punto.

l'operazione di matching di una stringa data una certa espressione regolare consiste semplicemente nel dire se quella stringa appartiene o meno al linguaggio regolare descritto dall'espressione; é un'operazione che restituisce solo vero o falso, non restituisce nessuna stringa. guarda il prototipo del metodo String.matches: prende un'espressione regolare e restituisce un booleano.
fero86 è offline  
Old 26-07-2010, 23:03   #20
MEMon
Senior Member
 
Iscritto dal: Dec 2002
Messaggi: 3359
Quote:
Originariamente inviato da fero86 Guarda i messaggi
ma cosi non si ottiene una stringa, si ottiene un array di stringhe: quale elemento dovrei prendere per avere l'output finale?
ad ogni modo sarei curioso di provarla ma non funziona.
DNAx86 chiedeva una regexp da usare come split per dividire una stringa, (probabilmente ha una stringa xxxxx{456}xxxx e vuyole spezzarla che ne so) quindi quella regexp va usata in uno split e non ti da i numeri all'interno delle graffe ovviamente visto che non è quello richiesto, anche se ovviamente facendo un match te li da.

Quote:
per te magari, anche se non l'avrei detto.

molte operazioni invece possono essere risolte senza farne uso.
Si capisce che non conosci assolutamente le espressioni regolari

Ultima modifica di MEMon : 26-07-2010 alle 23:25.
MEMon è offline  
 Discussione Chiusa


DJI Mic Mini 2: audio 48 kHz / 24-bit e protocollo OsmoAudio sotto i 100 Euro DJI Mic Mini 2: audio 48 kHz / 24-bit e protocol...
Recensione Moto G77: display AMOLED e buona autonomia per il midrange economico Recensione Moto G77: display AMOLED e buona auto...
DJI Lito 1 e Lito X1 recensione: i nuovi droni per principianti che non si fanno mancare nulla DJI Lito 1 e Lito X1 recensione: i nuovi droni p...
Sony World Photography Awards 2026: i premiati, anche italiani, il punto sulla fotografia di oggi Sony World Photography Awards 2026: i premiati, ...
Una settimana con Hyundai Ioniq 5 N-Line: diverte e convince Una settimana con Hyundai Ioniq 5 N-Line: divert...
Agente AI cancella l'intero database di ...
Il ritorno del Commodore 64: il nuovo C6...
Google Gemini entra nei sistemi classifi...
Nuovi MacBook Pro 14,2" con chip M5...
Configuratore Corsair FRAME, il punto di...
I giochi digitali su PS4 e PS5 hanno un ...
Robot umanoidi negli aeroporti: a Tokyo ...
I nuovi processori Intel Wildcat Lake so...
La dashcam 70mai A800SE a 109€ registra ...
The Blood of Dawnwalker: il sistema dei ...
Numeri a tre cifre contro le truffe tele...
Fine di un'era nel gaming PC: Denuvo &eg...
Hisense Smart TV serie U72Q in super sco...
OnePlus punta sul gaming: ecco il nuovo ...
Scope elettriche Tineco e Dreame: lavano...
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: 10:08.


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