Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Regex mittels Regex suchen (Problem: verschiedene Längen)

Mitglied: Phreak87

Phreak87 (Level 1) - Jetzt verbinden

24.05.2019 um 21:57 Uhr, 481 Aufrufe, 5 Kommentare

Hallo RegExperten,

ich habe ein Problem mit dem definieren einer Regex-Regel.
Ich habe eine Regex-Suchmaske (z.B. Test123[A4].C) und möchte eine
Liste durchsuchen (Ebenfalls Regex), welcher Satz zutreffend auf diese Regel ist.
Hauptproblem dabei ist dass die Länge variabel ist:

z.B. sollte gegebener Match zutreffen bei (Liste enthält durch Auflösung von eckigen oder runden Klammern zu kompletten Strings nur noch ggf.Punkte):
Test123
Test123A
Test123A.C
Test123ABC

jedoch nicht bei z.B.
Test123BC

Mein Ansatz bis jetzt:

1. Länge bis zum kürzesten *Prüfling* folgendermaßen definieren (noch easy und funktioniert, jedoch sicher verbesserungswürdig):
[T\.][e\.][s\.][t\.][1\.][2\.][3\.]

2. (Fortsetzung zu 1. Regex): (A oder Punkt(expilizit) oder Ende)
[A\.$][B\.$] => Findet weder Test123 noch Test123A, Match für Test123A. und Test123AB

3. (Fortsetzung zu 1. Regex): (A oder Punkt(expilizit) oder Ende) - Optional
[A\.$]?[B\.$]? => Findet jede Variante, jedoch auch die *falsche* Test123BC ...

Habt Ihr irgendeine Idee, wie ich dieses Problem lösen kann?
Vielen Dank!
Mitglied: lcer00
25.05.2019 um 09:55 Uhr
Hallo,

ich habe das jetzt 5mal gelesen, und verstehe Dein Anliegen immer noch nicht.

Wie genau sehen die zu durchsuchenden Daten aus und was genau willst Du finden?

Grüße


lcer
Bitte warten ..
Mitglied: 139920
25.05.2019, aktualisiert um 10:18 Uhr
Zitat von lcer00:
ich habe das jetzt 5mal gelesen, und verstehe Dein Anliegen immer noch nicht.
Kann ich nur zustimmen, für mich ebenfalls absolut unverständlich worauf der TO hier überhaupt hinaus will.
Bitte warten ..
Mitglied: Phreak87
25.05.2019 um 12:24 Uhr
Entschuldigung, ich hoffe ich bekomme das Anliegen dieses mal besser hin mit Varianten,
die mir das gewünschte Ergebnis liefern, jedoch entweder nicht anwendbar oder *zu doof* sind ...

Regex-Suche ist : "Test123ABC"

Suchliste ist :
Test123
Test123A
Test123A.C
Test123ABC
Test123BC

Resultat sollte sein:
Test123
Test123A
Test123A.C
Test123ABC

Folgende Varianten sind nicht anwendbar, würden jedoch das gewünschte Ergebnis liefern:

Suchliste ersetzen durch (geht nicht weil ich die Texte nicht verändern kann):
Test123...
Test123A..
Test123A.C
Test123ABC
Test123BC.

oder Regex-Suche: (mit "Test123" fix) - ginge, jedoch wird das bei mehreren Varianten schrecklich!
^Test123([A\.]|[A\.][B\.]|[A\.][B\.][C\.])$
(A oder punkt) oder (A oder Punkt und B oder punkt) oder (A oder Punkt und B oder Punkt oder C oder Punkt)

deshalb würde ich nach einer kürzeren und besseren Variante suchen.
ich hoffe es ist jetzt klarer was ich meine oder Versuche zu erreichen.

Vielen Dank
Bitte warten ..
Mitglied: 139920
25.05.2019, aktualisiert um 12:55 Uhr
deshalb würde ich nach einer kürzeren und besseren Variante suchen.
Da die Liste aus Regex-Ausdrücken besteht musst du auch alle Varianten mit denen ein Buchstabe/Ziffer mit Regex dargestellt werden kann auflisten ob du das nun wie oben machst oder z.B. auf diese Weise
^Test123($|ABC|A|\.BC|A\.C|AB\.)$
ist egal, wenn du über Regex suchst musst du das nun mal machen, denn es gibt ja auch \w etc die Buchstaben matchen, die wären also alle aufzulisten.

Ich würde das dann in dem Fall über eine Schleife realisieren die die Suchliste durchgeht und die Zeilen selbst über Regex auf das was das Ziel ist, anwenden und alle Positiven Matches in ein Array schreiben, damit entfällt das Auflisten aller Varianten.

Aber mit den Beispielen ist da noch immer etwas wirr. Mach doch mal anhand deiner konkreten RealLive-Aufgabe ein Beispiel, das viele "Test123" gibt einem keinen plastischen Eindruck von deiner realen Aufgabe.
Bitte warten ..
Mitglied: Phreak87
25.05.2019 um 20:29 Uhr
Hey, vielen Dank für deine Antwort.

die Art und Weise das in dieser Form aufzulisten ist zwar möglich aber ich denke
sehr unpraktikabel. Stell dir das ganze nur mal mit [ABCEF][12345][ZTREZ] vor ...
Da würde jede Kombination in tausenden Varianten erscheinen müssen (und in allen möglichen längen).
Wenn es nur ein Buchstabe wäre würde ich \w verwenden, jedoch dürfen es nur bestimmte Zeichen sein.

Dein 2. Satz ist ein Rückwärtsmatch der Varianten auf die Suche. Eine durchaus denkbare Möglichkeit, wenn
das Verfahren auch in einer MongoDB angewendet werden könnte. In der Software hätte ich es wahrscheinlich so
gemacht.

Das Beispiel ist wirr - da geb ich dir Recht. jedoch sind die Daten, die ich Matchen möchte noch wirrer. - Also
komplett zusammengesöpselte Zeichenketten ...

Der im 1. Post geschriebene Ansatz wäre mir da irgendwie am liebsten ... ich dachte da an look behind oder so:

Sprich: der Regex aus dem 1. Beitrag:
Test123 - (dann A oder Punkt oder Ende) - Wenn nicht Ende dann ... (B oder Punkt oder Ende)
- Problem scheint zu sein dass er das Ende in A nicht akzeptiert - anstatt dessen nach dem Ende
von B sucht - und somit die falschen Ausdrücke liefert.
Bitte warten ..
Ähnliche Inhalte
PHP
Regex: auto link
gelöst Frage von BadgerPHP4 Kommentare

Hallo Leute, mittels folgenden Code durchsuche ich einen String und erzeuge klickbare Links: Den Code selbst habe ich nach ...

Batch & Shell
Powershell Regex anders
gelöst Frage von ukodusBatch & Shell1 Kommentar

Hi, kann es sein, dass die Regex-Implementierung anders ist, als gewohnt? Der Regex funktioniert nämlich auf regexr.com -> Was ...

Batch & Shell
Hilfe bei REGEX
gelöst Frage von istike2Batch & Shell9 Kommentare

Hi, Ich habe hier 5 Strings, die ich mit Script filtern sollte. Kann mir jemand verraten, warum "^ -+ ?(\d*\.?\d+ +1000 ...

Windows Tools
Findstr und regex
gelöst Frage von tobmesWindows Tools5 Kommentare

Hi Experten, ich habe ziemlich viele PDF-Dateien, die ich mittels eines Batch-Files nach einem Bestimmten Muster durchsuchen möchte. Die ...

Neue Wissensbeiträge
Windows 10
Windows 10: Netzwerk zeigt Fehler 0x80070035
Tipp von anteNope vor 1 StundeWindows 105 Kommentare

Moin zusammen, ich hatte gerade mal wieder das Vergnügen mit dem obigen Fehler. Unter Borns Blog ist das beschreiben: ...

Windows 10

Bug: Windows 10 Enterprise LTSC erhält Funktionsupdate angeboten

Information von kgborn vor 19 StundenWindows 104 Kommentare

Der Fehler ist mittlerweile zwar korrigiert, aber ich denke, ich stelle die Info doch mal hier für Leute ein, ...

Viren und Trojaner

Entschlüsselungs-Tool für aktuelle GandCrab-Version verfügbar

Information von MrCount vor 23 StundenViren und Trojaner

Für alle Betroffenen gibt es offenbar ein Tool zur Entschlüsselung. Dann wird wohl die nächste version von GandCrap nicht ...

LAN, WAN, Wireless
Sophos RED50 stürzt ab und ist danach tot
Information von Ex0r2k16 vor 4 TagenLAN, WAN, Wireless3 Kommentare

Hey, nach meinem Thread bin ich durch Zufall auf das hier gestoßen: Also wenn ihr UTMs und RED50's im ...

Heiß diskutierte Inhalte
Viren und Trojaner
Gefahr - Risiko zwischen doc xls und docx xlsx
Frage von Asker06Viren und Trojaner33 Kommentare

Guten Tag, ich wollte wissen ob die .doc und .xls datein viel gefährlicher sind als .docx und .xlsx?? Ich ...

Sicherheit
Wie sichert (verschlüsselt) ihr eure Passwörter ?
gelöst Frage von decehakanSicherheit20 Kommentare

Hallo Admins, Mittlerweile hat man für jeden Dienst seine Zugangsdaten, sei es Amazon, Bank, FB, etc , vor allem ...

Windows Netzwerk
Standardgateway bei Clients mit statischer IP Adresse ändern
Frage von sammy65Windows Netzwerk17 Kommentare

Hallo miteinander, Wie kann ich über eine GPO die Standardgateway an meinen Clients ändern? Ich habe das versucht?: Es ...

Netzwerkmanagement
VLAN zwischen HP Switchen
gelöst Frage von SykoNFNetzwerkmanagement15 Kommentare

Moin Moin, ich versuche eine ganz einfachen Aufbau von VLAN zu erreichen. Ich habe zwei Switche, HP 1920-48G und ...