[Risolto] [Regex] dividere occorrenze ripetute

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
SuperStep
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 2037
Iscrizione: lunedì 19 dicembre 2011, 16:26
Desktop: Unity
Distribuzione: Ubuntu 16.04 LTS x86_64
Sesso: Maschile
Località: Somma Vesuviana (NA)

[Risolto] [Regex] dividere occorrenze ripetute

Messaggio da SuperStep »

Salve,

sono un po' arruginito con le regex, non riesco a fare questa cosa:

ho questo pattern:

Codice: Seleziona tutto

/(^.+:)?(.+,)?(.+$)?/
e le stringe sono di questo tipo:

Codice: Seleziona tutto

attribute:
value
attribute:value
value1,value2,value3
attribute:value1,value2,value3
l'unica problema lo ho nell'occorrenza dei valori, ottenendo in risposta una stringa che matcha l'ultimo, raggruppandomeli in questo modo:

esempio 1:

Codice: Seleziona tutto

value1,value2,value3
[
    null
    value1,value2,
    value3
]
quello che vorrei ottenere

Codice: Seleziona tutto

value1,value2,value3
[
    null
    value1,
    value2,
    value3
]
esempio 2:

Codice: Seleziona tutto

attribute:value1,value2,value3
[
    attribute:
    value1,value2,
    value3
]
quello che vorrei ottenere

Codice: Seleziona tutto

value1,value2,value3
[
    attribute:
    value1,
    value2,
    value3
]
come dico di separare alla prima occorrenza e non all'ultima?
Ultima modifica di SuperStep il lunedì 22 giugno 2015, 20:18, modificato 3 volte in totale.
ubuntu 16.04 LTS 64-bit - Memoria: 31,3 Gib - Processore: Intel Core i7-5960X CPU @ 3.00 GHz × 16 - Grafica: AMD Radeon HD 7800 Series - Disco: SSD 256 GB x 4 (RAID 01)
Avatar utente
SuperStep
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 2037
Iscrizione: lunedì 19 dicembre 2011, 16:26
Desktop: Unity
Distribuzione: Ubuntu 16.04 LTS x86_64
Sesso: Maschile
Località: Somma Vesuviana (NA)

Re: [Regex] dividere occorrenze ripetute

Messaggio da SuperStep »

ok dopo innumerevoli tentativi, eccola:

Codice: Seleziona tutto

/(^.+:)?(.+?,)+(.+$)?/
[edit]
e' sbagliata... :cry:
ubuntu 16.04 LTS 64-bit - Memoria: 31,3 Gib - Processore: Intel Core i7-5960X CPU @ 3.00 GHz × 16 - Grafica: AMD Radeon HD 7800 Series - Disco: SSD 256 GB x 4 (RAID 01)
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: [Regex] dividere occorrenze ripetute

Messaggio da Zoff »

Anziché: (.+,)?(.+$)?
Prova con ((.+),?)*
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
Avatar utente
SuperStep
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 2037
Iscrizione: lunedì 19 dicembre 2011, 16:26
Desktop: Unity
Distribuzione: Ubuntu 16.04 LTS x86_64
Sesso: Maschile
Località: Somma Vesuviana (NA)

Re: [Regex] dividere occorrenze ripetute

Messaggio da SuperStep »

ho usato questa:

Codice: Seleziona tutto

/((.+)(:)|^)?(.+)?$/
esempio online: https://regex101.com/r/eO7tE6/6

poi le variabili le splitto con explode.
ubuntu 16.04 LTS 64-bit - Memoria: 31,3 Gib - Processore: Intel Core i7-5960X CPU @ 3.00 GHz × 16 - Grafica: AMD Radeon HD 7800 Series - Disco: SSD 256 GB x 4 (RAID 01)
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 6 ospiti