Originariamente inviato da 0-c00l
Ma il problema è che credo legga @ come un simbolo dell' espressione e non di stringa da sostituire, quindi il replace non avviene. Come risolvo?
No il problema e' che la @ non e' un carattere che faccia parte di una parola. L'assertion \b matcha nel punto che separa un word character da un non-word character, non essendo @ un word character non c'e' match (a meno che PRIMA della @ non ci sia un word character)

codice:
testo @parola testo
     ^
     `-- spazio e @ sono entrambi non word
         quindi \b non da' match
codice:
testo@parola testo
    ^
    `-- la 'o' e' un word character, la @ no
        quindi \b in questo caso da' match
nel tuo caso probabilmente e' sufficiente questo pattern:
codice:
"/@$value\b"
e usiamo queste doppie virgolette invece di infestare il codice di mille concatenazioni di stringa.