Tengo una lista de prefijos: foo.bar. abc.
Ahora considere esta cadena:
{\n\"a\":foo.bar.user.email,\n\"b\":\"abc.name\"\n} ¿Cómo encuentro cada aparición de subcadenas que comienzan con uno de mis prefijos y luego lo envuelvo con ${} y elimino las comillas (si están presentes)?
Por ejemplo, en la cadena anterior, la salida deseada debería ser:
{\n\"a\":${foo.bar.user.email},\n\"b\":${abc.name}\n}otro ejemplo:
The quick abc.brown, fox jumps over the foo.bar.lazy\n"abc.dog"\nsalida deseada:
The quick ${abc.brown}, fox jumps over the ${foo.bar.lazy}\n${abc.dog}\nEn un sentido muy relajado y simplificado, podría usar esto como punto de partida
"?(?<![az])((?:foo\.bar|abc)(?:\.[az]*)+)"?
Reemplazar ${$1}
https://regex101.com/r/eoWkWA/1
"? (?<! [az] ) ( # (1 start) (?: foo \. bar | abc ) (?: \. [az]* )+ ) # (1 end) "?