You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB中实现特定格式字符串关键字提取与匹配处理的需求

VB.NET: 提取键值对格式字符串并生成组合输出

Got it, let's work through this problem step by step. You previously used string splitting to pull keywords from a text file, but now you need to handle a string with line-separated [Key=Value] entries—extracting each key, verifying its presence, popping a MsgBox with the corresponding value, and finally outputting combined strings like OneTest1.

Core Approach

Here's the breakdown of what we need to do:

  • Split the input string into individual [Key=Value] entries using line breaks
  • Extract the key and value from each entry (two reliable methods below)
  • Run your required case-insensitive check to confirm the key exists in the original string
  • Show the value via MsgBox and output the combined key-value string

Complete Code Example (Regex Method, Most Robust)

Regex is the best choice here because it handles edge cases (like extra whitespace or unexpected characters) better than manual splitting:

Imports System.Text.RegularExpressions

Sub ProcessKeyValueString()
    ' Your input string (replace with your actual variable)
    Dim KeyWords As String = "[One=Test1]" & vbNewLine & "[Two=Test2]" & vbNewLine & "[Three=Test3]"
    
    ' Split into individual entries, ignoring empty lines
    Dim keyValueEntries() As String = KeyWords.Split({vbNewLine}, StringSplitOptions.RemoveEmptyEntries)
    
    ' Loop through each entry
    For Each entry As String In keyValueEntries
        ' Match the [Key=Value] pattern to extract key and value
        Dim matchResult As Match = Regex.Match(entry, "\[(\w+)=(\w+)\]")
        If matchResult.Success Then
            Dim extractedKey As String = matchResult.Groups(1).Value
            Dim extractedValue As String = matchResult.Groups(2).Value
            
            ' Execute your required case-insensitive existence check
            If KeyWords.ToLower.Contains("[" & extractedKey.ToLower & "=") Then
                ' Show value in MsgBox as requested
                MsgBox($"对应值:{extractedValue}")
                ' Output the combined key-value string (adjust to your needs: e.g., write to file, console)
                Console.WriteLine($"{extractedKey}{extractedValue}")
            End If
        End If
    Next
End Sub

Alternative: Manual String Manipulation (No Regex)

If you prefer to avoid regex (and your values never contain = characters), this works perfectly:

Sub ProcessKeyValueStringWithoutRegex()
    Dim KeyWords As String = "[One=Test1]" & vbNewLine & "[Two=Test2]" & vbNewLine & "[Three=Test3]"
    Dim keyValueEntries() As String = KeyWords.Split({vbNewLine}, StringSplitOptions.RemoveEmptyEntries)
    
    For Each entry As String In keyValueEntries
        ' Strip off the surrounding square brackets
        Dim cleanedEntry As String = entry.Trim("["c, "]"c)
        ' Split into key and value using the = character
        Dim keyValuePair() As String = cleanedEntry.Split("="c)
        
        ' Make sure we have a valid key-value pair
        If keyValuePair.Length = 2 Then
            Dim extractedKey As String = keyValuePair(0).Trim()
            Dim extractedValue As String = keyValuePair(1).Trim()
            
            ' Same existence check and output logic
            If KeyWords.ToLower.Contains("[" & extractedKey.ToLower & "=") Then
                MsgBox($"对应值:{extractedValue}")
                Console.WriteLine($"{extractedKey}{extractedValue}")
            End If
        End If
    Next
End Sub

Key Notes

  • The case-insensitive check (ToLower) ensures matches work even if the input has mixed casing (e.g., [one=Test1] would still be detected)
  • StringSplitOptions.RemoveEmptyEntries prevents errors from accidental blank lines in the input string
  • The regex pattern \[(\w+)=(\w+)\] matches word characters (letters, numbers, underscores) for keys and values—adjust it if your keys/values include special characters (e.g., use (.+?) instead of (\w+) for any character)

内容的提问来源于stack exchange,提问作者Chris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 03:55:14