提取a点和B点之间的字符串的一部分

本文关键字:字符串 一部分 之间 点和 提取 | 更新日期: 2023-09-27 18:26:06

我正试图从电子邮件中提取一些内容。电子邮件的一般格式将始终为:

blablablablabllabla hello my friend.
[what I want]
Goodbye my friend blablablabla

现在我做到了:

                    string.LastIndexOf("hello my friend");
                    string.IndexOf("Goodbye my friend");

这会让我在比赛开始前得到一分,在比赛开始后得到一分。我可以用什么方法?我发现:

String.Substring(Int32, Int32)

但这只是一个起点。

我能用什么?

提取a点和B点之间的字符串的一部分

Substring获取开始索引(从零开始)和要复制的字符数。

你需要做一些数学运算,比如:

string email = "Bla bla hello my friend THIS IS THE STUFF I WANTGoodbye my friend";
int startPos = email.LastIndexOf("hello my friend") + "hello my friend".Length + 1;
int length = email.IndexOf("Goodbye my friend") - startPos;
string sub = email.Substring(startPos, length);

您可能希望将字符串常量放在const string中。

您也可以使用Regex

string s =  Regex.Match(yourinput,
                        @"hello my friend(.+)Goodbye my friend", 
                        RegexOptions.Singleline)
            .Groups[1].Value;

您可以简单地计算开始和结束的长度

const string startText = "hello my friend";
var start = str.LastIndexOf(startText) + startText.Length;
var end = str.IndexOf("Goodbye my friend");
var length = end -start;
str.Substring(start,length);
string s1 = "find a string between within a lengthy string";
string s2 = s1.IndexOf("between").ToString();
string output = s1.Substring(0, int.Parse(s2));
Console.WriteLine("string before between is : {0}", output);
Console.ReadKey();

你们。。您只需要自己创建一个新函数。在这里,使用我的代码。

public string subsequence(string s, int start, int end) {
       string startstring = s.Substring(start);
       string endstring = s.Substring(end);
       startstring = startstring.Replace(endstring, "");
       return startstring;
}

尝试myStr.substring(start,end);