c#.解析并找到字符串中的一些单词

发布于 2024-11-10 14:45:43 字数 136 浏览 3 评论 0原文

我有一些字符串

   bla bla bla bla  <I NEED THIS TEXT> 

<> 中获取文本的最佳和最快方法是什么?

I have some string

   bla bla bla bla  <I NEED THIS TEXT> 

What is the best and fastest way to get text inside <>?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

坏尐絯℡ 2024-11-17 14:45:43
int start = s.IndexOf("<") + 1;
int end = s.IndexOf(">",start);

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

string text = s.Substring(start,end - start);
你与清晨阳光 2024-11-17 14:45:43

Substring<> 的索引,通过 IndexOf

Use Substring with the indexes of < and >, obtained by IndexOf.

世界如花海般美丽 2024-11-17 14:45:43
var s = "bla bla bla bla  <I NEED THIS TEXT> ";
Console.WriteLine(s.Substring(s.IndexOf('<') + 1, s.IndexOf('>') - s.IndexOf('<') - 1));
var s = "bla bla bla bla  <I NEED THIS TEXT> ";
Console.WriteLine(s.Substring(s.IndexOf('<') + 1, s.IndexOf('>') - s.IndexOf('<') - 1));
丢了幸福的猪 2024-11-17 14:45:43
Regex.Match(input, "<(.*)>").Groups[1].Value
Regex.Match(input, "<(.*)>").Groups[1].Value
明媚殇 2024-11-17 14:45:43
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;
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;
猫烠⑼条掵仅有一顆心 2024-11-17 14:45:43

会有筑巢吗?上面的两个答案会给出不同的结果:

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();
}

Will there be nesting? Two of the answers above will give different results:

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();
}
依 靠 2024-11-17 14:45:43

没有正则表达式和各种检查:

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);
}

Without regex, and checking of sorts:

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);
}
小梨窩很甜 2024-11-17 14:45:43

使用 string.SubString 和 IndexOf mwthods 仅适用于“<”和“>”是您想要的文本的开头和结尾。如果这些字符恰好包含在实际文本开始之前,那么您将无法获得正确的字符串。

最好的办法是使用正则表达式。

Using string.SubString and IndexOf mwthods will only work is "<" and ">" are the start and end of the text you want. If these characters happen to be included before the actual text starts then you wont get correct string.

The best thing is to use regular expressions.

烟火散人牵绊 2024-11-17 14:45:43
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;
}
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;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文