opendatasicilia / tansignari

"T'ansignari e t'appeddiri"
http://tansignari.opendatasicilia.it
Creative Commons Attribution 4.0 International
18 stars 10 forks source link

[regex] acchiappare il primo carattere, presente più volte, in una stringa #231

Closed pigreco closed 1 year ago

pigreco commented 1 year ago

Ho delle stringhe cosi fatte:

PR.CS|12|CS
PR.CS|1|CrS
PR.CS|35|Ce

e dovrei ottenere questo risultato:

PR.CS12|CS
PR.CS1|CrS
PR.CS35|Ce

ovvero, eliminare il primo | di ogni stringa.

Sono sicuro che esiste un modo più elegante di quello che ho usato:

(.+)(\|)(.+)(\|)(.+)

link: https://regex101.com/r/bJHx2s/1

aborruso commented 1 year ago

Ciao @pigreco io mapperei tutto così ^(.+?)(\|)(.+)$

E poi fai il trova e sostituisci del caso https://regex101.com/r/aF37lv/1

aborruso commented 1 year ago

Il tema teorico chiave è quello delle regex 'lazy' e 'greedy' https://stackoverflow.com/a/2301298/757714

Quelle lazy si fermano alla prima occorrenza. Trovi centinaia di tutorial a tema.

pigreco commented 1 year ago

@aborruso grazie mille.

ricetta fata e pubblicata

https://tansignari.opendatasicilia.it/ricette/regex/selezionare_prima_occorrenza/