Imports System.Text.RegularExpressions Public Class ClassPostprocessing Private Const VBSPLIT = "VBSPLIT" Private Const VBREPLACE = "VBREPLACE" Private Const REGEXPRESSION = "REG. EXPRESSION" Public Shared Function Get_Nachbearbeitung_Wert(idxvalue As String, Datatable As DataTable) As String Dim oIndexValues As List(Of String) = idxvalue.Split(ClassConstants.VECTORSEPARATOR).ToList() Try For Each oDataRow As DataRow In Datatable.Rows Dim oResult As New List(Of String) Dim oType As String = oDataRow.Item("TYPE").ToString.ToUpper Select Case oType Case VBSPLIT LOGGER.Info(" ...Nachbearbeitung mit VBSPLIT") Dim oSeparator As String = oDataRow.Item("TEXT1") Dim oSplitIndex As Integer = 0 Integer.TryParse(oDataRow.Item("TEXT2"), oSplitIndex) For Each oIndexValue In oIndexValues Dim oSplitted As List(Of String) = oIndexValue.Split(oSeparator).ToList() oResult.Add(oSplitted.Item(oSplitIndex)) Next Case VBREPLACE Dim oFindString = oDataRow.Item("TEXT1") Dim oReplaceString = oDataRow.Item("TEXT2") LOGGER.Info(" ...Nachbearbeitung mit VBREPLACE") LOGGER.Info(" ...Ersetze '" & oFindString & "' mit '" & oReplaceString & "'") For Each oIndexValue In oIndexValues Dim oReplaceResult = oIndexValue.Replace(oFindString, oReplaceString) oResult.Add(oReplaceResult) Next Case REGEXPRESSION LOGGER.Info(" ...Nachbearbeitung mit RegEx") Dim oRegexList As New List(Of Regex) Dim oRegex As New Regex(oDataRow.Item("TEXT1"), RegexOptions.IgnoreCase) oRegexList.Add(oRegex) For Each oIndexValue In oIndexValues Dim oProcessedString = extractFromStringviaRE(oIndexValue, oRegexList) oResult.Add(oProcessedString) LOGGER.Info(" ...Ergebnis des RegEx: " & oProcessedString) Next End Select oIndexValues = oResult Next Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical, "Unexpected error in Get_Nachbearbeitung_Wert:") LOGGER.Info(" - Unvorhergesehener Unexpected error in Get_Nachbearbeitung_Wert - result: " & idxvalue & " - Fehler: " & vbNewLine & ex.Message) End Try Return String.Join(ClassConstants.VECTORSEPARATOR, oIndexValues.ToArray) End Function ''' ''' Extrahiert aus dem String anhand einer Liste von Regular Expressions ein Ergebnis. ''' ''' Der zu untersuchende String erzeugt wurden. ''' Eine Liste von Regular Expressions ''' Die Ergebnisgruppe, die die Adresse enthält ''' Eine Emailadresse oder Nothing, wenn keine der Regular Expressions ein Ergebnis lieferte. Public Shared Function extractFromStringviaRE(SearchString As String, RegexList As List(Of Regex), Optional RegexGroup As Integer = 1) If IsNothing(SearchString) Then Return Nothing End If For Each rx In RegexList Dim match As Match = rx.Match(SearchString) Dim result As String = match.Groups(RegexGroup).Value If Not String.IsNullOrWhiteSpace(result) Then 'Nur den ersten Wert zurückgeben Return result End If Next Return Nothing End Function End Class