使用c#搜索文本,但答案在关键字旁边
本文关键字:关键字 答案 搜索 文本 使用 | 更新日期: 2023-09-27 18:02:11
我有一个字符串,我需要搜索。
以为例,我需要搜索"Exif Byte Order"
关键字,输出它旁边的整个单词
Little-endian
我该怎么做?我试着寻找解决方案,但我找不到一个类似的问题。
这是字符串
File File Name NHD-and-Chronicling-America_04.jpg
File Directory C:/Users/Desktop/images
File File Size 65 kB
File File Modification Date/Time 2016:08:04 14:16:37-07:00
File File Access Date/Time 2016:08:10 13:38:40-07:00
File File Creation Date/Time 2016:08:10 13:38:40-07:00
File File Permissions rw-rw-rw-
File File Type JPEG
File File Type Extension jpg
File MIME Type image/jpeg
File Exif Byte Order Little-endian (Intel, II)
File Image Width 274
File Image Height 498
File Encoding Process Baseline DCT, Huffman coding
File Bits Per Sample 8
File Color Components 3
建议使用Linq:
string source = ...
string key = "Exif Byte Order";
var result = source
.Split(new char[] {''r', ''n'}, StringSplitOptions.RemoveEmptyEntries)
.Select(line => {
int index = line.IndexOf(key, StringComparison.OrdinalIgnoreCase);
return index < 0 ? null : line.Substring(index + key.Length).Trim();
})
.FirstOrDefault(line => line != null);
// Little - endian(Intel, II)
Console.Write(result);
如果您想准确地获得Little-endian
,您可以尝试正则表达式而不是简单的line.IndexOf
:
var result = source
.Split(new char[] {''r', ''n'}, StringSplitOptions.RemoveEmptyEntries )
.Select(line => Regex.Match(line, "(?<=" + Regex.Escape(key) + @"'s*)(['w's-/]+)"))
.FirstOrDefault(match => match.Success)
?.Value
?.Trim();
按搜索字符串拆分()字符串。你会得到一个以你想要的开头的字符串。也可以用空格分隔