AW: RegEx.Pattern "\d{4,} (owT)
13.01.2021 09:50:03
Yal
Hallo Boerni,
(owT) steht für "ohne weitere Text". Bedeutet, alle was ich sagen möchte, ist bereit im Betreff.
Der Fehler ist, dass "\d{4,}" gemeint war.
Sub RegEx_testen()
Dim E
'version 1
Debug.Print bd_RegExtract("12 2 6589 0172123456 23 0171457895", "(\d{4,})", Trenner:=" ")
'version 2
For Each E In Split(bd_RegExtract("12 2 6589 0172123456 23 0171457895", "(\d{4,})"), ";")
Debug.Print E
Next
End Sub
Public Function bd_RegExtract(Target, Optional Pattern = "[a-zA-Z]+", Optional Occurence, _
Optional Trenner = ";") As String
'unter Verweis (early binding) auf
'Name: VBScript_RegExp_55
'Description: Microsoft VBScript Regular Expressions 5.5
'FullPath: C:\Windows\SysWOW64\vbscript.dll\3
Dim R As New RegExp
Dim strInput As String
Dim Ergs As Object
Dim i, Erg$
Select Case VarType(Target)
Case vbString: strInput = Target
Case Else: strInput = CStr(Target.Range("A1").Value)
End Select
R.IgnoreCase = True
R.MultiLine = True
R.Global = True
R.Pattern = Pattern
Set Ergs = R.Execute(strInput)
If Ergs.Count = 0 Then
bd_RegExtract = ""
Else
If IsMissing(Occurence) Then
For i = 0 To Ergs.Count - 1
Erg = Erg & Trenner & Ergs(i).Value
Next
bd_RegExtract = Mid(Erg, 2)
Else
bd_RegExtract = Ergs(Occurence - 1)
End If
End If
End Function
VG
Yal