111,126
社区成员
发帖
与我相关
我的任务
分享private string[] test(string src, string start, string end)
{
Regex reg = new Regex(string.Format("{0}(\\d+){1}(\\d+)", Regex.Escape(start), Regex.Escape(end)));
Match m = reg.Match(src);
if (m.Success)
{
return new string[]{m.Groups[1].Value, m.Groups[2].Value};
}
else
return null;
}
//调用
string str = "d0s0s3t1p0to99999i3m0to99999c50m1rp1.htm";
string[] result = test(str, textBox1.Text, textBox2.Text);
if (result != null)
richTextBox2.Text += result[0] + "\n" + result[1];<script type="text/javascript">
document.close();
document.open();
var str= "d0s0s3t1p0to99999i3m0to99999c50m1rp1.htm";
var result = test(str, "to", "i");
for(var i=1; i<result.length; i++)
{
document.write(result[i]);
document.write("<br>");
}
function test(src, start, end)
{
var re = new RegExp(start + "(\\d+)" + end + "(\\d+)", "i");
return src.match(re);
}
</script>
private void GetDigit(string input, string start, string end, out int startDigit, out int endDigit)
{
Regex reg = new Regex(string.Format("{0}(?<StartDigit>[\\d]+).*{1}(?<EndDigit>[\\d]+)",start,end));
Match m = reg.Match(input);
startDigit = endDigit = int.MinValue;
if(m.Success && m.Groups.Count >=3)
{
int.TryParse(m.Groups["StartDigit"].Value,out startDigit);
int.TryParse(m.Groups["EndDigit"].Value,out endDigit);
}
Console.WriteLine(string.Format("start digit:{0},end digit:{1}", startDigit, endDigit));
}
string str = "d0s0s3t1p0to99999i3m0to99999c50m1rp1.htm";
int startDigit,endDigit;
GetDigit(str,"d","s",out startDigit,out endDigit);
GetDigit(str,"p","to",out startDigit,out endDigit);
GetDigit(str,"c","m",out startDigit,out endDigit);
/*输出
start digit:0,end digit:3
start digit:0,end digit:99999
start digit:50,end digit:1
*/