Ho una stringa:C# RegEx estrazione stringa
"ImageDimension = 655x0; ThumbnailDimension = 0x0".
Devo estrarre il primo numero (stringa "655") tra "ImageDimension =" e la prima occorrenza di "x"; e occorre estrarre il secondo numero (stringa "0") dopo la prima "x" che si verifica dopo la stringa "ImageDimension =". Simile al terzo e al quarto numero.
questo può essere fatto con espressioni regolari ("ImageDimension = x ;???? ThumbnailDimension = x ") e come? Invece di sottostringhe goffe e indexof? Grazie!
La mia soluzione, che non è bello:
String configuration = "ImageDimension=655x0;ThumbnailDimension=0x0";
String imageDim = configuration.Substring(0, configuration.IndexOf(";"));
int indexOfEq = imageDim.IndexOf("=");
int indexOfX = imageDim.IndexOf("x");
String width1 = imageDim.Substring(indexOfEq+1, indexOfX-indexOfEq-1);
String height1 = imageDim.Substring(imageDim.IndexOf("x") + 1);
String thumbDim = configuration.Substring(configuration.IndexOf(";") + 1);
indexOfEq = thumbDim.IndexOf("=");
indexOfX = thumbDim.IndexOf("x");
String width2 = imageDim.Substring(indexOfEq + 1, indexOfX - indexOfEq-1);
String height2 = imageDim.Substring(imageDim.IndexOf("x") + 1);
Come un caso a parte: si potrebbe rendere molto meno brutta, senza espressioni regolari così, utilizzando String.split(). – Stu