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

gelöst VB.Net - RegEx - String enthält NICHT ein bestimmtes Wort

Mitglied: emeriks

emeriks (Level 5) - Jetzt verbinden

26.09.2019 um 10:59 Uhr, 798 Aufrufe, 4 Kommentare

Hi,
RegEx ist nicht meine Stärke.

Ich will in einem meiner Programme benutzerdefinierte Textfilter einbauen. Die Benutzer sollen u.a. auch per RegEx Listen filtern können.
Nun teste ich selbst gerade damit und bin auf eine Anforderung gestoßen, welche ich mit meinen bescheidenen RegEx-Kenntnissen nicht auf die Reihe bekomme.

Ich will z.B., dass Strings überprüft werden, ob sie folgendem Schema entsprechen: Enthält "Hallo" und "Welt" aber nicht "falsch".

Mein Versuch:
Wenn ich den String "Hallo schöne Welt! Das ist ein falsches Wort." damit teste, bekomme ich ein Match.
Wenn ich "Hallo schöne Welt! Das ist ein Wort." damit teste, bekomme ich auch ein Match.


Wie muss ich sowas anstellen?

E.

Mitglied: 140913
26.09.2019, aktualisiert um 11:53 Uhr
Das geht mit den Zero Length Assertions und .* die du hier so nutzt nicht. Teile das ganze auf und zwar den Teil den du positiv matchen willst und den Teil der nicht enthalten sein soll.
Also zuerst ein Match der Worte die enthalten sein sollten mit einem Regex und danach ein weiterer Match der alle Sachen matcht die nicht enthalten sein dürfen mit
z.B. dieser ist nur positiv wenn der entsprechende Pattern (hier "falsch") nicht enthalten ist.

screenshot - Klicke auf das Bild, um es zu vergrößern

Am Ende vergleichst du beide Teile auf einen Match und gibst nur dann positive Rückmeldung wenn beide Teile positiv ausgefallen sind. Das lässt sich ja bei Bedarf auch über Arrays auf mehr Strings ausweiten.
Bitte warten ..
Mitglied: emeriks
26.09.2019 um 11:43 Uhr
Zitat von 140913:
Hm, ja ok, so könnte ich das als Programmierer prüfen.

Ich will dem Benutzer aber nur eine Textzeile anbieten, wo er seinen RegEx reinschreiben kann. Ich kann dann also nur diesen eine Ausdruck einmal prüfen.
Wenn ich Dich richtig verstanden habe, wäre dann die von mir genannte konkrete Anforderung so für den Benutzer nicht umsetzbar?
Bitte warten ..
Mitglied: 140913
LÖSUNG 26.09.2019, aktualisiert um 12:01 Uhr
Muss mich korrigieren (brett vor kopf klatsch). Habe gerade nochmal geprüft, wäre doch folgendermaßen machbar indem man den Negative Lookahead als erstes nutzt, denn dann geht der Regex-Parser bei einem negativen Ergebnis des Lookahaead erst gar nicht weiter im Kontext:
screenshot - Klicke auf das Bild, um es zu vergrößern

Hier sieht man es schön wie der Parser das ganze aufrollt (für das Beispiel der ersten Zeile):

screenshot - Klicke auf das Bild, um es zu vergrößern
Bitte warten ..
Mitglied: emeriks
26.09.2019 um 12:06 Uhr
Zitat von 140913:
Muss mich korrigieren (brett vor kopf klatsch).
Also, komm, ja !

Danke für Deine Mühe!
Das geht so!
Bitte warten ..
Ähnliche Inhalte
Visual Studio
VB.Net - Hilfe bei Regex
gelöst Frage von emeriksVisual Studio8 Kommentare

Hi, vorne weg: Ich weiß, im Web gibt's zig Beispiele. Ich habe heute auch schon gesucht, aber abgebrochen, weil ...

VB for Applications

VBA Grenzwerte in String prüfen Regex ??? Excel2010

Frage von ChillministratorVB for Applications3 Kommentare

Hallo zusammen, in meiner Tabelle soll der Bereich Z8S9 bis Z76S20 Zeile für Zeile überprüft werden. In den Spalten ...

Visual Studio

Zufälligen String wählen in VB.NET

gelöst Frage von joehuabaVisual Studio2 Kommentare

Hallo Zusammen, ich bin leider nicht recht fit in VB.NET Ich habe eine Liste von Strings: Nun starte ich ...

Batch & Shell

Wort aus String "herrausschneiden", FileOpenDialog

gelöst Frage von Bruno8500Batch & Shell12 Kommentare

Ich bin gerade dabei ein CMD Skript zu schreiben für folgende Anwendung: Wenn man bei DHL eine Online Frankierung ...

Neue Wissensbeiträge
E-Books

Ausgewählte Rheinwerk-Bücher jetzt online lesen! Kostenfrei

Information von Maxima2005 vor 1 TagE-Books1 Kommentar

Vielleicht hat ja jemand Interesse sein Wissen zu erweitern. Ausgewählte Rheinwerk-Bücher jetzt online lesen! Grüße Max

Instant Messaging
Jitsi Meet - April Update verfügbar
Information von Frank vor 1 TagInstant Messaging5 Kommentare

Im Rahmen des April-Updates erhält Jitsi Meet mehrere interessante Features. Anwender können nun nicht mehr nur ihren Bildschirm, sondern ...

Rechtliche Fragen

Rechtliche Grundlagen: Datenschutz und Datensicherheit im Homeoffice

Information von AnkhMorpork vor 2 TagenRechtliche Fragen

Sollte bekannt sein, aber

Router & Routing
"Upgrade" Fritte 7520 zu Fritte 7530 :-)
Information von Lochkartenstanzer vor 2 TagenRouter & Routing6 Kommentare

Moin, wie sich herausgestellt hat, ist die 7520 eine per Software kastrierte Version der 7530. Per "Chiptuning", um es ...

Heiß diskutierte Inhalte
Server-Hardware
Wie viel Speicher braucht eine Wissensdatenbank für bis zu 50 User?
Frage von Mrhallo19981Server-Hardware39 Kommentare

Hallo, könnt ihr mir sagen wieviel Speicherplatz eine Wissensdatenbank braucht (die physikalisch speichert, also nicht mit einer Datenbank zusammen) ...

Festplatten, SSD, Raid
Festplatten Datenvernichtung Server
Frage von survial555Festplatten, SSD, Raid30 Kommentare

Hallo, ich habe noch ein paar alte Server, wo ich die verbauten Festplatten gerne datentechnisch "sicher" löschen möchte. Leider ...

Linux
Internetprobleme mit Wine für Linux um .exe Dateien auszuführen
Frage von WinLiCLILinux22 Kommentare

Hallo zusammen, ich möchte auf meinem debian 10 einen client für cloud-telefonie (cloud pbx) installieren, den es nur für ...

Server-Hardware
Dimensionierung Server-Hardware
Frage von MurpelServer-Hardware17 Kommentare

Moin Moin, ich möchte einen Server besorgen und aufsetzen. Auf dem Server soll Branchensoftware laufen, auf die 4-6 Nutzer ...