Ich versuche, ein Muster zu entsprechen, und dann die nächsten 1-3 Zeilen nach dem Muster, wenn sie existieren. Ich weiß, dass ich etwas falsch zu machen, aber ich bin nicht sicher, was genau es ist:Alle Zeilen sowie das ursprüngliche Muster in VBA regex
Also, wenn die Zeichenfolge enthält:
OUR SKED
or
OURS SCHEDULE:
01JAN14-24FEB16
26FEB17-17FEB18
19MAR16 - 24DEC28
(die Grammatikfehler ignorieren, muss ich die Tatsache zu übernehmen, Leute können nicht buchstabieren, aber können das "Wesentliche" davon richtig erhalten). Ich muss das bekommen, plus die nächsten 3 Zeilen. Im Moment bekomme ich nur den ersten Teil, der mit dem Zeitplan übereinstimmt.
((OUR[S]{0,1} S[KCH]{1,2}ED(ULE){0,1})[:]{1})((([\r\n])([0-9]{2}[\s]{0,1}[A-Z]{3}[0-9]{2}[\s]{0,1}-[\s]{0,1}[0-9]{2}[\s]{0,1}[A-Z]{3}[0-9]{2})|)|){0,3}
RegExr die oben genannten Arbeiten verwenden, aber in meinem Debug.Print
ich bin immer nur den "Unser Zeitplan:" teil.
Lassen Sie mich den obigen Regex für die Klarheit brechen. Der Zeitplan Teil:
((OUR[S]{0,1} S[KCH]{1,2}ED(ULE){0,1})[:]{1})
Die jeweils nachfolgenden Datumsgrenze, auf die Räume und zufällige Fehler:
((([\r\n])([0-9]{2}[\s]{0,1}[A-Z]{3}[0-9]{2}[\s]{0,1}-[\s]{0,1}[0-9]{2}[\s]{0,1}[A-Z]{3}[0-9]{2})|)|){0,3}
, die zwischen 01JAN17-02FEB17
oder 10 JAN 17 - 02 FEB 17
und alles wird passen.
Dies wird die richtige erste Zeile, so weiß ich, ich bin gut, weiß nur nicht, was ich noch vermisse.
Ich verwende jetzt den VBA-Code von der ersten Antwort zu testen, und immer noch nur den ersten Teil. Der VBA-Code, um das Spiel zu ziehen, ist wie folgt:
Public Function StripPatternMatchingRegex2(ByVal valueToTest As String, ByVal expression As String) As Variant
Dim regex As New RegExp
Dim results As Variant
Dim allmatches As Object
If valueToTest <> "" Then
With regex
.Global = True
.Multiline = True
.IgnoreCase = False
.Pattern = expression
End With
' Debug.Print expression
If regex.test(valueToTest) Then
Set StripPatternMatchingRegex2 = regex.Execute(valueToTest)
Else
Set StripPatternMatchingRegex2 = Nothing
End If
End If
End Function
Ihr Ziel rumspielen kann, ist, die Daten zu bekommen? Warum zielst du nicht auf die Datumswerte? –
Ich brauche sie, um die Daten zu sein, die spezifisch nach diesem Muster existieren, weshalb ich dieses Muster einschließe. Andere Daten existieren in diesem Dokument. – Nick