在C#中提取两个标签之间的文本

时间:2011-10-10 06:46:39

标签: c#

我在拆分c#

时遇到问题

(textbox0中的文字)

start and dffdfdddddddfd<m>one</m><m>two</m><m>three</m><m>four</m>dbfjnbjvbnvbnjvbnv and end

并且我想在按钮1中单击时在<m></m>之间提取文本,我需要

输出1 : 一二三四(输出到textbox1)

输出2 : 四个(输出到文本框2)

输出3 : 一个(输出到文本框3)

我该怎么办?

我该怎么做?

请给我 button1_Click的完整代码 please.i我是C#的业余爱好者,所以我需要输出代码

4 个答案:

答案 0 :(得分:4)

以下是codez

var items = new List<string>();
foreach (Match match in Regex.Matches(text, "<m>(.*?)</m>"))
    items.Add(match.Groups[1].Value);
string output = String.Join(" ", items);

someTextBox.Text =  output;

if (items.Any())
   anotherTextBox.Text = items[0];

if (items.Count > 2)
   whateverTextBox.Text = items[3];

答案 1 :(得分:3)

而是为您编写代码,我想指出正则表达式。看看Using regular expressions。这是解析文本以查找所需位的一种方法。特别是,阅读“群组”。

一旦匹配工作完成,您就可以提取匹配组并将文本解析为您需要的字段。

干杯!

答案 2 :(得分:3)

使用

 Regex.Matches(TextString, "<m>(.*?)</m>")

答案 3 :(得分:1)

尝试这样的RegEx:

string source = "start and dffdfdddddddfd<m>one</m><m>two</m><m>three</m><m>four</m>dbfjnbjvbnvbnjvbnv and end";
List<string> destList = new List<string>();

foreach (Match match in Regex.Matches(source, "<m>(.*?)</m>"))
    destList.Add(match.Groups[1].Value);

textbox1.Text = String.Join(" ", destList); 
textbox2.Text = destList[3];
.....