10

文字列があります

   bla bla bla bla  <I NEED THIS TEXT> 

テキストを内部に取り込むための最良かつ最速の方法は何<>ですか?

4

9 に答える 9

6
int start = s.IndexOf("<") + 1;
int end = s.IndexOf(">",start);

string text = s.Substring(start,end - start);
于 2011-05-31T09:08:46.627 に答える
3

によって取得されたおよびSubstringのインデックスとともに使用します。<>IndexOf

于 2011-05-31T09:08:45.410 に答える
3
var s = "bla bla bla bla  <I NEED THIS TEXT> ";
Console.WriteLine(s.Substring(s.IndexOf('<') + 1, s.IndexOf('>') - s.IndexOf('<') - 1));
于 2011-05-31T09:11:02.410 に答える
3
Regex.Match(input, "<(.*)>").Groups[1].Value
于 2011-05-31T09:11:07.187 に答える
2

営巣はありますか?上記の 2 つの回答では、異なる結果が得られます。

static void Main()
{
    string s = "hello<I NEED <I NEED THIS TEXT> THIS TEXT>goodbye";

    string r = Regex.Match(s, "<(.*)>").Groups[1].Value;

    int start = s.IndexOf("<") + 1;
    int end = s.IndexOf(">", start);
    string t = s.Substring(start, end - start);

    Console.WriteLine(r);
    Console.WriteLine(t);

    Console.ReadKey();
}
于 2011-05-31T09:24:46.653 に答える
2
var input = "bla bla bla bla  <I NEED THIS TEXT> ";

var match = Regex.Match(input, @".*?<(?<MyGroup>.*?)>");
if (match.Success)
    var text = match.Groups["MyGroup"].Value;
于 2011-05-31T09:10:12.677 に答える
1

string.SubString および IndexOf mwthods の使用は、"<" および ">" が必要なテキストの開始と終了である場合にのみ機能します。実際のテキストが始まる前にこれらの文字が含まれていると、正しい文字列が得られません。

最善の方法は、正規表現を使用することです。

于 2011-05-31T09:59:41.580 に答える
1

正規表現なし、および種類のチェック:

var data = "bla bla bla bla <I NEED THIS TEXT>";

int start = 0, end = 0;
if ((start = data .IndexOf("<")) > 0 &&
    (end = data .IndexOf(">", start)) > 0)
{
    var result = data .Substring(start + 1, end - start - 1);
}
于 2011-05-31T09:15:19.117 に答える
0
var input = "bla bla bla bla  <I NEED THIS TEXT>";
Match match = Regex.Match(input, @"<([^>]*)>");
if (match.Success)
{
    // Do some with match.Groups[1].Value;
}
于 2011-05-31T09:09:59.260 に答える