2012-08-23 11 views
5

Tengo una aplicación que lee el html fuente y descarga todos los archivos adjuntos de un correo electrónico. Esto funciona bien, excepto por el hecho de que Microsoft Outlook tiene algún valor fuente extraña, por ejemplo ...Reemplazar la cadena fuente html de MS Outlook usando regex?

<img width="163" height="39" id="Picture_x0020_1" src="cid:[email protected]" alt="Description: Description: Description: cid:[email protected]">

En primer lugar, me gustaría cambiarlo a sólo Adjuntos \ image001.png como fuente. Además, el alt debería ser image001.png, no esta alt extraña y larga. No estoy seguro de cómo hacerlo.

+2

[No use regex para analizar html] (http://stackoverflow.com/a/1732454/26226). – jrummell

+0

Creo que el título estaba bien, solo estoy señalando que Regex suele ser muy poco fiable en el análisis de html. – jrummell

+1

si está seguro de que el 'text' tendría el' same pattern', 'same format' y ** NUNCA ** cambiaría, usted ** DEBE ** usar' REGEX' entonces ... Esto es poco probable con los archivos html pero creo que 'REGEX' sería una buena opción aquí ... – Anirudha

Respuesta

2

Debe utilizar expresiones regulares (He actualizado las etiquetas en su pregunta para reflejar esto):

Regex.Replace(text, @"src=""cid:(?<FileName>[^@]+)@[^""]*""", @"src=""Attachments\${FileName}""", 
    RegexOptions.IgnoreCase | RegexOptions.CultureInvariant); 
Regex.Replace(x, @"alt=""[^.]*cid:(?<FileName>[^@]+)@[^""]*""", @"alt=""${FileName}""", 
    RegexOptions.IgnoreCase | RegexOptions.CultureInvariant); 

Estoy seguro de que hay formas más eficientes de hacer esto, pero eso es lo que podría ocurrir.

Cuestiones relacionadas