Devi usare le espressioni regolari.. è un argomento delicato e soprattutto complesso ma ti permette di avere controllo assoluto sulle stringhe:
codice:
articolo = Regex.Replace(articolo, @"\[\*\](?<immagine>\d+)\[/\*\]", "<a href=\"$+\"><IMG src='thumb.aspx?width=200&articolo=" + objRs2["ID"] + "\"></a>");
(mi spiace ma io uso C#..)
Il Replace del classe Regex ti permette di indicare 3 parametri: stringa di origine, pattern, e stringa di sostituzione.
Nel mio caso ho passato prima articolo (che contiene tutta la stringa da controllare), poi ho indicato cosa deve cercare all'interno dell'articolo:
\[\*\](?<immagine>\d+)\[/\*\]
(?<immagine>\d+) = permette di utilizzare il numero indicato tra i tag[*] e [/*]
La stringa di sostituzione è:
<a href=\"$+\"><IMG src='thumb.aspx?width=200&articolo=" + objRs2["ID"] + "\"></a>
Dove $+ restituisce l'ultimo gruppo di caratteri catturato (nel nostro caso l'unico con nome "immagine" e che restituisce il numero scritto dall'utente tra i 2 tag).