日期:2014-05-17  浏览次数:20433 次

如何实现根据标记显示文字?
我有几段文字  现要根据对文字的标记进行截取

例如:

文本域内容如下
#A#
<#A#>abcdefg</#A#>
#B#
<#B#>1234567</#B#>
#C#
<#C#>ABCDEFG</#C#>
#D#
<#D#>7654321</#D#>

现在我想输出:1234567 7654321

程序上该怎么写

请大家帮忙




------解决方案--------------------
用正则提取 <#D#>和</#D#>间的文字
------解决方案--------------------
引用:
用正则提取 <#D#>和</#D#>间的文字

加上判断是否为你需要的类型
------解决方案--------------------
或者直接提取连续数字

            System.IO.StreamReader reader = new System.IO.StreamReader("e:\\1.txt",System.Text.Encoding.Default);
            string str = reader.ReadToEnd();
            Regex reg = new Regex(@"(?is)[\d]+");
            MatchCollection mc = reg.Matches(str);
            foreach (Match m in mc)
            {
                MessageBox.Show(m.Value);
            }

------解决方案--------------------
正则改成<(#(B
------解决方案--------------------
D)#)>(.*?)</\1>
------解决方案--------------------
直接提取数字
\d+
------解决方案--------------------
用正则即可

LS上  也许LZ不一定是要提取数字呢  只想要标记里面的东西饿
------解决方案--------------------
根据标记?你的意思是说是要输入一个标记,然后在输出相应的内容是吧?
假设你输入 A,B,C,D这种规范的标记

string lbl = Console.ReadLine();
Match ma = Reges.IsMatch(source,"<#"+lbl+"#>([0-9]+?)</#"+lbl+"#>");
Console.WriteLine(ma.Groups[1].value);