c# - 在C#中查找字符串中的字符串

标签 c#

<分区>

我有一个字符串,更具体地说,它是一段 HTML 源代码,但由于某种原因,我需要的行都写成一行(所以基本上它是一个使用 ReadLine() 的字符串)。现在在那个字符串中我需要提取一个特定的词。

这是一段提取的 html 代码。我需要的是每个 .mp3 文件的 /Qur%27an/Luhaidan/001.mp3 部分,直到 114.mp3。

...<th scope="colgroup"><a href="/Qur%27an/Luhaidan/001.mp3"><img src="...
...<th scope="colgroup"><a href="/Qur%27an/Luhaidan/002.mp3"><img src="...
...<th scope="colgroup"><a href="/Qur%27an/Luhaidan/114.mp3"><img src="...

最佳答案

虽然通常阅读 HTML 的最佳方法是使用 HTML 解析器,但像这样的简单任务可以使用正则表达式来解决。

这样的表达式应该有效:

href="(.*?[.]mp3)"

在循环中搜索此正则表达式,并提取文件名的第一组。

var str = @"
...<th scope=""colgroup""><a href=""/Qur%27an/Luhaidan/001.mp3""><img src=""...
...<th scope=""colgroup""><a href=""/Qur%27an/Luhaidan/002.mp3""><img src=""...
...<th scope=""colgroup""><a href=""/Qur%27an/Luhaidan/114.mp3""><img src=""...
";
foreach (Match m in Regex.Matches(str, "href=\"(.*?[.]mp3)\"")) {
    Console.WriteLine(m.Groups[1]);
}

这打印

/Qur%27an/Luhaidan/001.mp3
/Qur%27an/Luhaidan/002.mp3
/Qur%27an/Luhaidan/114.mp3

Demo on ideone.

关于c# - 在C#中查找字符串中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20014159/

相关文章:

c# - 如何将文本框的边框颜色重置为默认系统颜色

c# - 1分钟倒计时

c# - 关于带参数的 Debug.Writeline() 的简单 C# 问题

c# - 我需要做什么才能使此代码在可移植类库中工作?

c# - 以特定格式组合和连接给定数据

c# - 从具有 "priority"的列表中删除重复项

c# - 什么是应用域?

c# - 使用 C# 的 Excel/VSTO 中的列号到列字母

C# 通过字符串而不是整数引用集合中的对象

c# - Docker:应用程序通过 docker-compose up 可以正常工作,但是如何通过 Visual Studio 运行它并进行调试?