要是您的字符串固定格式可以定义为:
"<若干数字或字母>-<若干数字或字母><两位流水号>-<若干数字或字母><两位流水号>"
<若干数字或字母>,在正则里写成,可以是0个或多个:[a-zA-Z0-9]*
<两位流水号>,这里我假设它只会是数字,不会是字母:[0-9]{2}
这样的话,正则可以这样写:
@"^([a-zA-Z0-9]*-[a-zA-Z0-9]*?)[0-9]{2}(-[a-zA-Z0-9]*?)[0-9]{2}$"
然后就可以替换了:
Regex.Replace("your string", @"^([a-zA-Z0-9]*-[a-zA-Z0-9]*?)[0-9]{2}(-[a-zA-Z0-9]*?)[0-9]{2}$", "$1$2");
public string DoReg(string Inputstr)
{
string str = Inputstr;
Regex reg = new Regex("[\\d]{2}");
Match mat = reg.Match(str);
List<string> list = new List<string>();
if (mat.Success)
{
MatchCollection mc = reg.Matches(str);
int temp = 0;
for (int i = 0; i < mc.Count; i++)
{
int index = mc[i].Index - temp * 2;
if (index > 0)
{
if (str[index - 1] >= '0' && str[index - 1] <= '9')
continue;
}
if (index < str.Length - 2)
{
if (str[index + 2] >= '0' && str[index + 2] <= '9')
continue;
}
str = str.Substring(0, index) + str.Substring(index + 2);
temp++;
}
}
return str;
}
Regex.Replace(xx,@"(\S+)\w{2}(-\w+)\w{2}","$1$2");