【问题标题】:Get String with Specific Tags in C#在 C# 中获取具有特定标签的字符串
【发布时间】:2013-05-19 17:52:42
【问题描述】:

我正在寻找一种从具有特定标签的字符串中获取字符串的方法,例如 我有这个字符串:"Hello <date> My <name> is <your name>" 我需要返回这个: <date> <name> <your name>

在数组或列表中

只有单词以 开头和结尾。

谢谢一百万! :-)

【问题讨论】:

  • 输入和输出如何关联?我不知道你在他们之间做了什么。啊,您的编辑清除了它。
  • 你能发一份完整的样本吗?目前尚不清楚您的输入、输出和尝试了什么。
  • 你试过什么?你考虑过哪些选择?我们不是一个向不努力的人分发代码的地方。
  • 你想看看here

标签: c# asp.net string


【解决方案1】:

您可以使用正则表达式模式<.*?> 来检索每个单词,即

MatchCollection matches = Regex.Matches(input, "<.*?>");

然后您可以遍历集合以获取标签。

【讨论】:

  • IMO,比寻找不是&lt;&gt; 的字符更好的是让* 不贪心:"&lt;.*?&gt;"
  • 实际上,很长一段时间以来,正则表达式中的非贪婪语法在浏览器支持上都存在问题,但测试它似乎与当前浏览器不再相关。
【解决方案2】:

Mike Precup 比我快 1 分钟 :) 无论如何你应该使用 Regular Expressions,例如:

var s = @"some <thing> is different <about> this <string>";
var pattern = @"(?<=\<)(.*?)(?=\>)";
var regex = new Regex(pattern);
var matches = regex.Matches(s);
foreach (Match match in matches)
{
    match.Groups[0].Captures[0].Value.Dump(); // using LINQPad
}

输出是:

thing
about
string

亲切的问候, P.

【讨论】:

  • 是的,这段代码就像一个魅力!简单,快速,很棒。谢谢一百万!
猜你喜欢
  • 2013-01-30
  • 1970-01-01
  • 1970-01-01
  • 2020-08-22
  • 2021-10-09
  • 2015-10-25
  • 2018-12-23
  • 2021-10-15
  • 1970-01-01
相关资源
最近更新 更多