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

本文关键字:标签 两个 之间 文本 提取 | 更新日期: 2023-09-27 18:10:45

我在c#中有分裂问题

(text in textbox0)

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

和我想提取<m></m>之间的文本时,点击在button1和我需要

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

输出2:4 (输出到textbox2)

输出3:1 (输出到textbox3)

我该怎么办?

我该怎么做呢?

请给我完整的代码button1_Click请。我是c#业余爱好者,所以我需要输出代码

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

以下是代码

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];

比起为您编写代码,我更希望您使用正则表达式。看看使用正则表达式。这是解析文本以找到所需位的一种方法。特别是,阅读"组"。

匹配工作完成后,可以提取匹配组并将文本解析为所需的字段。

干杯!

use

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

试试这样的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];
.....