/ / regex corrisponde dopo una stringa specificata - regex

regex match dopo una determinata stringa - regex

{{"name":"alpha",
"age":"23",
"sex":male",
"location":"U.S"
}
{"name":"beta",
"age":"23",
"sex":male",
"location":"Cambodia"
}}

Se do un nome, il mio regex dovrebbe restituire il percorso per quel nome. Supponiamo che il nome sia dato come variabile, quindi provo,

"name":"alpha"[dD]*"location":"(.+?)"

Ricevo sempre l'ultima posizione con questa espressione. Come posso ottenere la posizione in base al nome? Qualsiasi aiuto?

risposte:

2 per risposta № 1

Otterrai sempre l'ultimo perché [dD]* sta facendo corrispondere tutto ciò che sta in mezzo e Regex cerca di abbinare sempre il più possibile. Se il tuo motore Regex lo sa non avido partite (e sembra che lo faccia perché si usa una partita non avida nel luogo stesso: +?), dovresti essere in grado di usare questo:

"name":"alpha"[dD]*?"location":"(.+?)"