Vb net Regex 检索数据,直到特定关键字或字符串末尾



>我有几个字符串,比如

kw_CS_TABLE__FC29-001::details=MIN_CAT::title=xxxx
kw_CS_TABLE__FC29-002::details=CAT to NSE
kw_CS_TABLE__FC29-003::details=HAZMIN::

我只想检索详细信息字符串(MIN_CAT,CAT 到 NSE,HAZMIN(。 我使用正则表达式(?<=::details=)(.*)(?=::),第一种和第三种情况看起来不错。但在第二种情况下失败了。 我正在努力识别字符串的结尾。我使用|$命令,但在这种情况下,我检索文件末尾的所有句子。 (?<=::d尾巴=((.*)(?=::|$)

kw_CS_TABLE__FC29-001::details=MIN_CAT::title=xxxx返回> MIN_CAT::title=xxxx

我很难理解正则表达式概念,特别是因为我只在某些特定情况下使用它。我阅读了几个教程和帖子,但没有解决我的问题。

谢谢

没有正则表达式

Private Function GetDetailsFrom(line As String) As String
Return  line.Split({"::"}, StringSplitOptions.None).
Where(Function(item) item.StartsWith("details")).
Select(Function(detail) detail.Split({"="c}).LastOrDefault()).
FirstOrDefault()
End Function

用法

Dim lines As String() = 
{
"kw_CS_TABLE__FC29-001::details=MIN_CAT::title=xxxx",
"kw_CS_TABLE__FC29-002::details=CAT to NSE",
"kw_CS_TABLE__FC29-003::details=HAZMIN::"
}
Dim details = lines.Select(AddressOf GetDetailsFrom)
Console.WriteLine(string.Join(Environment.NewLine, details))
' MIN_CAT
' CAT to NSE
' HAZMIN