>我有几个字符串,比如
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