【发布时间】:2012-02-24 18:54:33
【问题描述】:
我有一个字符串:
“图像尺寸=655x0;缩略图尺寸=0x0”。
我必须提取介于 "ImageDimension=" 和第一次出现 "x" 之间的第一个数字("655" 字符串); 并且需要在“ImageDimension=”字符串之后的第一个“x”之后提取第二个数字(“0”字符串)。与第三个和第四个数字类似。
这可以用正则表达式完成吗 ("ImageDimension=? x ?;ThumbnailDimension=? x ? “) 如何 ?而不是笨拙的子字符串和 indexof ?谢谢!
我的解决方案不好:
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);
【问题讨论】:
-
顺便说一句:如果没有正则表达式,您也可以使用 string.Split() 使其不那么难看。