Dentro del archivo AssemblyInfo.cs hay esta cadena: [assembly: AssemblyVersion("1.0.0.1")]
y estoy tratando de recuperar uno por uno los números en él, cada uno es una variable en la siguiente estructura.Recuperando la versión de Assembly del archivo AssemblyInfo.cs con Regex
static struct Version
{
public static int Major, Minor, Build, Revision;
}
estoy usando este patrón para tratar de recuperar los números:
string VersionPattern = @"\[assembly\: AssemblyVersion\(""(\d{1,})\.(\d{1,})\.(\d{1,})\.(\d{1,})""\)\]";
Sin embargo, cuando se utiliza este código, el resultado no es el esperado, en cambio, muestra la cadena completa como si fuera la combinación real y no cada número en un grupo.
Match match = new Regex(VersionPattern).Match(this.mContents);
if (match.Success)
{
bool success = int.TryParse(match.Groups[0].Value,Version.Major);
...
}
En este caso this.mContents
es todo el texto leído desde el archivo y match.Groups[0].Value
debe ser "1" de la AssemblyVersion
Mi pregunta es recuperar estos números uno por uno con expresiones regulares.
Esta pequeña herramienta consiste en incrementar la versión de la aplicación cada vez que Visual Studio la construye y sé que hay muchas herramientas para hacerlo.
John Weldon tiene razón. Yo recomendaría usar [Expresso] (http://www.ultrapico.com/Expresso.htm) para probar sus expresiones regulares. Me ha sido de gran ayuda cuando necesito probar expresiones regulares una vez en una luna azul. – bigfoot