在文本框中查找并分离文本的特殊部分,然后用C#将其复制到另一个文本框中?

在文本框中查找并分离文本的特殊部分,然后用C#将其复制到另一个文本框中?,c#,C#,我在多行文本框中有一个长文本。我将把文本中以一个特殊的词开头,以另一个特殊的词结尾的部分分为七个部分。然后把它复制到另一个文本框中。 请帮帮我。试试拆分 例如: string data = "TEXTONExxTEXTTWOxxTEXTTHREExxTEXTFOUR"; return data.Split(new string[] { "xx" }, StringSplitOptions.None); 我建议您使用regex来解决这个问题。 代码如下: using System; using

我在多行文本框中有一个长文本。我将把文本中以一个特殊的词开头,以另一个特殊的词结尾的部分分为七个部分。然后把它复制到另一个文本框中。 请帮帮我。

试试拆分 例如:

string data = "TEXTONExxTEXTTWOxxTEXTTHREExxTEXTFOUR";
return data.Split(new string[] { "xx" }, StringSplitOptions.None);

我建议您使用regex来解决这个问题。 代码如下:

using System;
using System.Text.RegularExpressions;

namespace Regex_GetSpecialPart_Demo
{
    class Program
    {
        static void Main(string[] args)
        {
            string example = "starttest_exampleend";
            var match = Regex.Match(example, @"start(\S+)end");
            if (match.Success)
            {
                var result = match.Result("$1");
                Console.WriteLine(result);
            }

            Console.ReadLine();
        }
    }   
}

结果是“test_example”

正则表达式是最好的选择,但如果您不想使用它并且更喜欢编写额外的代码,请使用以下方法:

public String getTextBetween(string start, string end, string text) {
            int t1 = 0;
            int t2 = 0;

            if (text == null) return "";
            t1 = text.IndexOf(start);
            if (t1 >= 0) t2 = text.IndexOf(end, t1 + start.Length);

            return text.Substring(t1 + start.Length, t2 - t1 - start.Length);
        }

如果起始词和结束词是fixex值,则可以使用正则表达式过滤掉内容no起始词和结束词不是fixex。但是你能为fixex值编写代码吗?