Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Test ride Can-Am Origin: la moto elettrica che fa dimenticare il motore a scoppio (ma occhio all'autonomia)
Test ride Can-Am Origin: la moto elettrica che fa dimenticare il motore a scoppio (ma occhio all'autonomia)
Abbiamo provato per una settimana intera la Can-Am Origin, la Dual Sport elettrica del gruppo canadese BRP: ecco com'è andata tra città, autostrada e un primo assaggio di sterrato
Logitech G325, G305 e G316 X: il tris per chi non vuole rinunciare a nulla, spendendo poco
Logitech G325, G305 e G316 X: il tris per chi non vuole rinunciare a nulla, spendendo poco
Nelle ultime settimane abbiamo provato il mouse Logitech G305, la tastiera G316 X 98 e le cuffie G325. Si tratta del setup entry-level di Logitech che ormai, di "entry-level" ha ben poco. Tastiera e mouse offrono prestazioni di livello competitivo con quasi nessuna rinuncia e un livello di personalizzazione estremamente elevato. Le cuffie, invece, hanno mostrato qualche debolezza, ma propongono un ventaglio di funzionalità completo che consente di abbandonare completamente i cavi
Recensione POCO F9 pro: potenza da vero top di gamma, display da 185 Hz e finalmente una fotocamera da prendere sul serio
Recensione POCO F9 pro: potenza da vero top di gamma, display da 185 Hz e finalmente una fotocamera da prendere sul serio
POCO F9 Pro arriva sul mercato con l'obiettivo di portare prestazioni da smartphone top di gamma in una fascia di prezzo "più aggressiva", senza rinunciare a un comparto fotografico finalmente all'altezza. Dopo averlo testato sul campo, emerge uno smartphone molto più completo rispetto alla generazione precedente, ma anche con alcuni piccoli compromessi che diventano difficili da ignorare quando il prezzo di listino sfiora i 1.000 euro.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 12-01-2015, 19:32   #1
sharkkk
Member
 
L'Avatar di sharkkk
 
Iscritto dal: Oct 2013
Messaggi: 158
ESPRESSIONI REGOLARI - info

Sto cercando di estrapolare dei dati tramite query in un database "speciale" e per filtrare i dati devo per forza usare delle espressioni regolari.

Se voglio cercare Roma attualmente con (\\W|^)Rome(\\W|$) mi trova cose come: Basilica_dei_Santi_Apostoli_(Rome), Egeria_(Rome), ..., e poi finalmente Rome.

Il problema è che mi trova molte cose che non voglio come Basilica_dei_Santi_Apostoli_(Rome) e mi trova Rome al 200esimo posto, mentre Basilica è il primo risultato.

Come posso fare per trovare Rome per primo tramite espressione regolare?
sharkkk è offline   Rispondi citando il messaggio o parte di esso
Old 12-01-2015, 21:01   #2
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2794
Concettualmente mi sembra sbagliato quello che vuoi fare. Vorresti ordinare i risultati della ricerca ma lo vuoi fare con un linguaggio fatto per filtrare. Ordinare != Filtrare
Non puoi post-processare i risultati ordinandoli ad esempio per lunghezza?
Oppure il metodo che usi per interrogare questo database "speciale" non offre qualcosa per specificare in qualche modo l'ordinamento?
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 12-01-2015, 21:19   #3
sharkkk
Member
 
L'Avatar di sharkkk
 
Iscritto dal: Oct 2013
Messaggi: 158
Quote:
Originariamente inviato da wingman87 Guarda i messaggi
Concettualmente mi sembra sbagliato quello che vuoi fare. Vorresti ordinare i risultati della ricerca ma lo vuoi fare con un linguaggio fatto per filtrare. Ordinare != Filtrare
Non puoi post-processare i risultati ordinandoli ad esempio per lunghezza?
Oppure il metodo che usi per interrogare questo database "speciale" non offre qualcosa per specificare in qualche modo l'ordinamento?
è un 3store, sul quale vengono fatte query SPARQL del tipo:
Codice:
		SELECT DISTINCT *
		FROM <http://dbpedia.org>
		where {
		[]  foaf:isPrimaryTopicOf ?wikiID.
		FILTER (regex(?wikiID, "(\W|^)''' + AJAX_data + '''(\W|$)")) . 
			}
		ORDER BY ?wikiID
		limit 50
in questo caso specifico vengono presi tutti gli uri di wikipedia che contengono all'interno la stringa cercata (AJAX_data).
Pero se cercassi Roma, troverei non solo l'uri di wikipedia di Roma, ma tutti quelli che hanno all'interno la parola Roma, e Roma stessa sarebbe presente dopo tanti risultati.
sharkkk è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2015, 08:13   #4
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2794
Molto interessante questo progetto! Comunque riguardo alla tua domanda: non puoi modificare il resto della query? Solo la regex?
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2015, 10:33   #5
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Quote:
Originariamente inviato da sharkkk Guarda i messaggi
Sto cercando di estrapolare dei dati tramite query in un database "speciale" e per filtrare i dati devo per forza usare delle espressioni regolari.

Se voglio cercare Roma attualmente con (\\W|^)Rome(\\W|$) mi trova cose come: Basilica_dei_Santi_Apostoli_(Rome), Egeria_(Rome), ..., e poi finalmente Rome.

Il problema è che mi trova molte cose che non voglio come Basilica_dei_Santi_Apostoli_(Rome) e mi trova Rome al 200esimo posto, mentre Basilica è il primo risultato.

Come posso fare per trovare Rome per primo tramite espressione regolare?
Hai provato a rimuovere ^ e $ dall'espressione regolare, i.e.
\\WRome\\W ?
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2015, 14:55   #6
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Non conosco questo particolare linguaggio, ma l'espressione "\W" mi suggerisce qualcosa come "word", nel senso di parola intera. I caratteri ^ e $ vengono generalmente utilizzati per indicare l'inizio e fine di una stringa.
Io proverei "^Rome$".
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2015, 15:21   #7
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Quote:
Originariamente inviato da Daniels118 Guarda i messaggi
Non conosco questo particolare linguaggio, ma l'espressione "\W" mi suggerisce qualcosa come "word", nel senso di parola intera. I caratteri ^ e $ vengono generalmente utilizzati per indicare l'inizio e fine di una stringa.
Io proverei "^Rome$".
Veramente e' il contrario: \W indica ogni carattere che NON appartiene ad una parola. Quello che ti suggerisce "word" e' \w
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2015, 15:38   #8
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Quindi si dovrebbe leggere: qualunque carattere che non appartiene ad una parola, seguito da "Rome", seguito da qualunque carattere che non appartiene ad una parola.
Da cui le corrispondenze con sequenze come "Egeria_(Rome)", mentre per la corrispondenza esatta ci pensano |^ e |$.
Quindi perché "\\WRome\\W" dovrebbe selezionare solo "Rome"? Mi sembrava che la richiesta fosse proprio quella di trovare solo la corrispondenza esatta, o sbaglio?
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2015, 17:34   #9
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2794
Quote:
Originariamente inviato da Daniels118 Guarda i messaggi
Non conosco questo particolare linguaggio, ma l'espressione "\W" mi suggerisce qualcosa come "word", nel senso di parola intera. I caratteri ^ e $ vengono generalmente utilizzati per indicare l'inizio e fine di una stringa.


Io proverei "^Rome$".


Sì se vuole solo una corrispondenza esatta sarebbe giusto così, io ho dato per scontato che volesse mantenere tutte le corrispondenze.
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 14-01-2015, 04:35   #10
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Quote:
Originariamente inviato da wingman87 Guarda i messaggi
Sì se vuole solo una corrispondenza esatta sarebbe giusto così, io ho dato per scontato che volesse mantenere tutte le corrispondenze.
Beh, se vuole la corrispondenza esatta basterebbe
Codice:
Pattern p = Pattern.compile("Rome");
Matcher m = p.matcher(<la stringa da verificare>);
boolean result = Matcher.matches()
quindi senza nemmeno ^ e $

Sospetto che voglia qualcosa di diverso, che magari non e' stato specificato per brevita'
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 14-01-2015, 05:41   #11
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2794
Non mi sembra, se non metti ^ e $ il match può avvenire in qualunque punto della stringa. Per esempio troverebbe anche Romeo
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 14-01-2015, 07:38   #12
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Nel caso di più risultati, se si potesse mettere una funzione nella clausola order by - per esempio strlen - si potrebbe ottenere un ordinamento conveniente.
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
Old 14-01-2015, 09:38   #13
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Quote:
Originariamente inviato da wingman87 Guarda i messaggi
Non mi sembra, se non metti ^ e $ il match può avvenire in qualunque punto della stringa. Per esempio troverebbe anche Romeo
No, il matches() e' sull'intera stringa
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 14-01-2015, 11:24   #14
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2794
Quote:
Originariamente inviato da sottovento Guarda i messaggi
No, il matches() e' sull'intera stringa
Hai ragione, però non credo che nella query faccia il matching in quel modo altrimenti \WRome\W non farebbe il match con "Basilica_dei_Santi_Apostoli_(Rome)"
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 15-01-2015, 04:36   #15
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Quote:
Originariamente inviato da wingman87 Guarda i messaggi
Hai ragione, però non credo che nella query faccia il matching in quel modo altrimenti \WRome\W non farebbe il match con "Basilica_dei_Santi_Apostoli_(Rome)"
A meno che non stia usando una libreria dedicata, immagino che davvero stia facendo il matching usando il Matcher, probabilmente utilizzando il grouping.
Sono d'accordo con te che non sta utilizzando il metodo matches() ma se il suo scopo e' quello di trovare il match esatto lo potrebbe fare, visto che ce l'ha a disposizione
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Test ride Can-Am Origin: la moto elettrica che fa dimenticare il motore a scoppio (ma occhio all'autonomia) Test ride Can-Am Origin: la moto elettrica che f...
Logitech G325, G305 e G316 X: il tris per chi non vuole rinunciare a nulla, spendendo poco Logitech G325, G305 e G316 X: il tris per chi no...
Recensione POCO F9 pro: potenza da vero top di gamma, display da 185 Hz e finalmente una fotocamera da prendere sul serio Recensione POCO F9 pro: potenza da vero top di g...
Tra audio e AI: la ricetta di Qualcomm per l'agentic AI Tra audio e AI: la ricetta di Qualcomm per l'age...
Qualcomm annuncia la nuova generazione di SoC Snapdragon 8 Elite Gen 6 Qualcomm annuncia la nuova generazione di SoC Sn...
Il satellite LINK è rientrato nel...
L'ESA risponde alle critiche di Jared Is...
La NASA annuncia il nuovo telescopio spa...
HONOR pubblica The Sea Between Us, un co...
L'Olanda punta su NixOS e open source pe...
OPPO Find X10 Pro Max, il flagship con t...
Gli smartphone Samsung potrebbero avere ...
GeForce Now arriverà sui Googlebo...
Opus 5.5 e GPT-6 Sol nello stesso pomeri...
Weekend Amazon, le prime 5 offerte sono ...
Mini Compressore a 21,84€: gonfia le gom...
Gemini si aggiorna, ora può conne...
Da 32 a 65 pollici: ecco le TV più...
Xiaomi Redmi Note 17 a 269€: ecco perch&...
ASUS avverte i clienti: accesso non auto...
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: 21:29.


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