早教吧 育儿知识 作业答案 考试题库 百科 知识分享

C#中Regex的一个小问题想要将目标代码中第一次出现以下标签中间内的值matches给我自定义的变量.0114025031——————————————我使用以下代码,请问newRegex的括号里,怎么写?RegexmyR

题目详情
C#中Regex的一个小问题
想要将目标代码中第一次出现以下标签中间内的值matches给我自定义的变量.
0114
025
031
——————————————
我使用以下代码,请问new Regex的括号里,怎么写?
Regex myRegex = new Regex();
MatchCollection matches = myRegex.Matches(inputString);
redMiss1.Text = matches[0].Groups[1].Value.ToString();
redMiss2.Text = matches[1].Groups[1].Value.ToString();
redMiss3.Text = matches[2].Groups[1].Value.ToString();
▼优质解答
答案和解析
这个应该是标准答案,与上面的的正则表达式,有一个区别就是加了?非贪婪模式搜索
private void GetRegexValue()
{
//定义多个ul
string xml = @"
0114
025
031


0115
026
032
";
//第一个正则表达式,获取ul,与上一个区别在于加了?非贪婪模式搜索
string pattern = "[\\s\\S]+?";
MatchCollection mc = Regex.Matches(xml, pattern, RegexOptions.IgnoreCase);
if (mc.Count > 0)
{
string matchStr = mc[0].Value;
//第二个表达式,获取所有em值
MatchCollection matches = Regex.Matches(matchStr, "(?\\d+)");
string outStr = "";
if (matches.Count > 0)
{
//组织返回值,可以按照你的代码进行修改
foreach (Match match in matches)
{
outStr += match.Groups["v"].Value + ";";
}
//可用下面的代码替换
//redMiss1.Text = matches[0].Groups[1].Value.ToString();
//redMiss2.Text = matches[1].Groups[1].Value.ToString();
//redMiss3.Text = matches[2].Groups[1].Value.ToString();
}
}
}