[Risolto]regexp e group
-
giuseppe500
- Scoppiettante Seguace

- Messaggi: 470
- Iscrizione: martedì 22 maggio 2012, 14:04
- Distribuzione: 22.04
- Sesso: Maschile
[Risolto]regexp e group
ciao , ho una stringa del tipo :
sdfsfs[par1]asdadadad[par2]sdffsdfsf[par33]sdfsfsdf
i [par] sono i parametri che vorrei estrarre mi piacerebbe usare i group e fare il match di tutti i parametri(risultato: par1,par2,par33) ma non ho capito come funzionano i gruppi con le ()
grazie.
sdfsfs[par1]asdadadad[par2]sdffsdfsf[par33]sdfsfsdf
i [par] sono i parametri che vorrei estrarre mi piacerebbe usare i group e fare il match di tutti i parametri(risultato: par1,par2,par33) ma non ho capito come funzionano i gruppi con le ()
grazie.
Ultima modifica di giuseppe500 il sabato 21 giugno 2014, 17:11, modificato 1 volta in totale.
- vaeVictis
- Imperturbabile Insigne

- Messaggi: 4703
- Iscrizione: venerdì 27 luglio 2012, 17:58
- Desktop: Gnome
- Distribuzione: Ubuntu 20.04 64bit
Re: regexp e group
Potresti spiegarti meglio?
Linguaggio?
Esempio pratico di riga ed estrazione dalla riga?
Linguaggio?
Esempio pratico di riga ed estrazione dalla riga?
Pirates arrrrrrrrrrr awesome!!!
«I fear not the man who has practiced 10000 kicks once,
but I fear the man who has practiced one kick 10000 times.»
«I fear not the man who has practiced 10000 kicks once,
but I fear the man who has practiced one kick 10000 times.»
-
giuseppe500
- Scoppiettante Seguace

- Messaggi: 470
- Iscrizione: martedì 22 maggio 2012, 14:04
- Distribuzione: 22.04
- Sesso: Maschile
Re: regexp e group
linguaggio : sia php sia vb.net , è possibile?
Esempipo pratico di estrazione
stringa di input:
sdfsfs[par1]asdadadad[par2]sdffsdfsf[par33]sdfsfsdf
match
par1,par2,par33, il contenuto di tutto cio che sta dentro a due parentesi quadre [*] per tutta la stringa , e ce ne possono essere n
grazie, ciao
Esempipo pratico di estrazione
stringa di input:
sdfsfs[par1]asdadadad[par2]sdffsdfsf[par33]sdfsfsdf
match
par1,par2,par33, il contenuto di tutto cio che sta dentro a due parentesi quadre [*] per tutta la stringa , e ce ne possono essere n
grazie, ciao
- vaeVictis
- Imperturbabile Insigne

- Messaggi: 4703
- Iscrizione: venerdì 27 luglio 2012, 17:58
- Desktop: Gnome
- Distribuzione: Ubuntu 20.04 64bit
Re: regexp e group
Diamo la precedenza ad utenti che ti sappiano indicare qualcosa relativo ai linguaggi che indichi.
Secondariamente, se non arrivassero, vediamo cosa fare genericamente con una regex, ma con altri linguaggi che conosco (anche sed o similia)
Secondariamente, se non arrivassero, vediamo cosa fare genericamente con una regex, ma con altri linguaggi che conosco (anche sed o similia)
Pirates arrrrrrrrrrr awesome!!!
«I fear not the man who has practiced 10000 kicks once,
but I fear the man who has practiced one kick 10000 times.»
«I fear not the man who has practiced 10000 kicks once,
but I fear the man who has practiced one kick 10000 times.»
-
giuseppe500
- Scoppiettante Seguace

- Messaggi: 470
- Iscrizione: martedì 22 maggio 2012, 14:04
- Distribuzione: 22.04
- Sesso: Maschile
Re: regexp e group
intanto mi puoi spiegare come funziona in modo generale il concetto di gruppi e di match multipli?
scusa se ho usato parole sbagliate.
grazie.
scusa se ho usato parole sbagliate.
grazie.
Re: regexp e group
Per i match multipli in PHP hai a disposizione preg_match_all, data una regex e una stringa ti offre una rray con tutti i match trovati.
Quello che serve a te quindi è:
Spiego la regex utilizzata: \[([^\]]+)\]
La parte blue va a ricercare le parentesi quadre (aperta e chiusa), nota gli escape \, servono per indicare che si ricerca proprio le parentesi e che non le si vuole utilizzare come parte della sintassi della regex.
La parte rossa, cioé le tonde, serve per indicare quale parte ci interessa recuperare, quindi tutto quello che è dentro le quadre.
La parte verde è la regex che si occupa di matchare tutti i caratteri diversi dalla quadra chiusa, quindi tutto il contenuto delle quadre. Se si utilizza .+ invece di [^\]]+ si vanno a prendere in considerazione tutti i frammenti di caratteri tra qualsiasi quadra aperta e chiusa, per intenderci anche:
sdfsfs[par1]asdadadad[par2]sdffsdfsf[par33]sdfsfsdf
Quello che serve a te quindi è:
Codice: Seleziona tutto
$str = 'sdfsfs[par1]asdadadad[par2]sdffsdfsf[par33]sdfsfsdf';
preg_match_all( '/\[([^\]]+)\]/', $str, $result );
var_dump($result);
La parte blue va a ricercare le parentesi quadre (aperta e chiusa), nota gli escape \, servono per indicare che si ricerca proprio le parentesi e che non le si vuole utilizzare come parte della sintassi della regex.
La parte rossa, cioé le tonde, serve per indicare quale parte ci interessa recuperare, quindi tutto quello che è dentro le quadre.
La parte verde è la regex che si occupa di matchare tutti i caratteri diversi dalla quadra chiusa, quindi tutto il contenuto delle quadre. Se si utilizza .+ invece di [^\]]+ si vanno a prendere in considerazione tutti i frammenti di caratteri tra qualsiasi quadra aperta e chiusa, per intenderci anche:
sdfsfs[par1]asdadadad[par2]sdffsdfsf[par33]sdfsfsdf
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
-
giuseppe500
- Scoppiettante Seguace

- Messaggi: 470
- Iscrizione: martedì 22 maggio 2012, 14:04
- Distribuzione: 22.04
- Sesso: Maschile
Re: regexp e group
grazie molte.
ho capito,
ciao.
ho capito,
ciao.
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti
