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 IPWünsch Dir wasWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Regex versagt bei Klammern im String

Mitglied: Maveric

Maveric (Level 1) - Jetzt verbinden

19.11.2013 um 19:08 Uhr, 1851 Aufrufe, 2 Kommentare

Moin zusammen,

ich habe hier ein leichtes Skript, was jedoch einen winzigen Haken hat.

PROBLEM:
Wenn der Ausgangsstring z.b. "Paul hat einen Bart(Schneider) in seinem Auto" eine Klammer "(" beinhaltet,
wird der gesuchte String z.b. "Paul" oder "Auto" nicht mehr gefunden, obwohl er im Ausgangsstring vorhanden ist.

Wie man im Skript sehen kann, möchte ich, wenn noch nicht vorhanden in jede Produktbezeichnung und
Beschreibung die Energieeffzienz anfügen, sofern sie nicht schon vorhanden ist. Nur damit nicht jmd. noch
fragt wozu ich das bau Bärten und Autos brauche ;).

Ich habe in diesem Fall nur die Option für ein Shell-Skript, sonst hätte ich Perl genommen,
also wäre Vorschläge zu Shell Skripten gern gesehen :=)

Hier mal das Shell-Skript:

Viele Grüße
Maveric
Mitglied: 64748
19.11.2013 um 20:42 Uhr
Hallo,

ich hab mal mit Deinem Ausgangsstring rumprobiert, ich kann nicht feststellen, dass das Matching des Satzes "Paul hat einen Bart(Schneider) in seinem Auto" nicht funktioniert. Hier meine Ausgabe:
Sowohl Wörter vor der Klammer, also auch zwischen Klammern und dahinter werden einwandfrei erkannt. Bist Du sicher, dass das Matching das Problem ist? Auch wenn man den Suchstring (z.B. Paul in eine Variable setzt d=Paul) funktioniert es einwandfrei.

Markus
Bitte warten ..
Mitglied: Maveric
19.11.2013 um 20:53 Uhr
Habe die Lösung gefunden...

Ja du hast recht, mein Beispiel funktioniert tadellos. Ich hatte ja geschrieben das ich mit Energieeffiziensklassen Arbeite also
"A+, A++" usw.

Der Fehler Tritt genau hier aut: if [[ "$k" =~ "$d" ]]; then

Der Rechte Ausdruck ist eine Regular Expression und in ihr Steht A+, A++ usw.
Ein "+" in Regex sagt aus, das ein oder mehr Zeichen im von dem Vorrangegangenem
Wort vorhanden sein müssen. Also hat der Zeile nach a oder aa oder aaa gesucht aber nicht nach "A+" oder "A++".

Das mit den Klammern bei den Spalten wo es nicht funktioniert hat war jetzt mal wieder
der beste Zufall überhaupt.

Die Lösung ist demensprechen, den Inhalt der Variable $d zu escapen. Z.b. so: fd=$(echo "$d" | sed -e 's/\+/\\+/g');

Und dann beim Matching dementsprechen if [[ "$k" =~ "$fd" ]]; then

Dann klappt auch alles.

Viele Grüße
Maveric
Bitte warten ..
Ähnliche Inhalte
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

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

gelöst Frage von emeriksVisual Studio4 Kommentare

Hi, RegEx ist nicht meine Stärke. Ich will in einem meiner Programme benutzerdefinierte Textfilter einbauen. Die Benutzer sollen u.a. ...

Visual Studio

REGEX - Hilfe

gelöst Frage von emeriksVisual Studio10 Kommentare

Hi, ich hasse RegEx und ich werde es wohl auch nie wirklich lernen. Es erschließt sich mir einfach nicht. ...

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 ...

Neue Wissensbeiträge
Sicherheits-Tools

TrendMicro WFBS 10.0 SP1 - Critical Patch veröffentlicht!

Information von VGem-e vor 2 MinutenSicherheits-Tools

Servus, siehe hier. Download-Link hier swfbs/10.0WFBS_100_SP1_All_MSA_11.7_HFB1073.exe Gruß

Humor (lol)

Wie verhindere ich, dass Websitebesucher die Werbecookies abschalten?

Information von DerWoWusste vor 1 TagHumor (lol)7 Kommentare

Ich habe gerade auf die Antwort gefunden: ich täusche einen langwierigen Änderungsprozess vor und biete nebenbei einen Cancelbutton, den ...

Sicherheit

Windows Setup erlaubt elevation of privilege plus DC Updates

Information von DerWoWusste vor 2 TagenSicherheit3 Kommentare

Eine interessante neue Sicherheitslücke. Details gibt es wenig, aber die klare Empfehlung: If you are using WSUS or MEM ...

Exchange Server

Exchange Server 2016 and the End of Mainstream Support

Information von Dani vor 2 TagenExchange Server

As hopefully many of you already know Exchange Server 2016 enters the Extended Support phase of its product lifecycle ...

Heiß diskutierte Inhalte
Windows Server
Windows Server "mit" oder "ohne" Antivirensoftware
gelöst Frage von Dr.MabuseWindows Server23 Kommentare

Antiviren-Software: Fluch oder Segen? Die Frage der Sinnhaftigkeit von Antiviren-Software ist nicht neu Die Software kostet Performance, sorgt oft ...

Windows Server
Patchday August Server 2019 - zerstört Hyper V Dienste
Frage von ichkriegediekrieseWindows Server19 Kommentare

Guten Morgen alle zusammen Gestern habe ich, wie oft die Sicherheitsupdates vom Patchday eingespielt da ja doch einige Sicherheitsupdates ...

Hardware
Azubi Projekt - Serverhardware
Frage von nachgefragtHardware19 Kommentare

Hallo Administratoren, für ein Azubi-Projekt benötige ich euren Rat, um ihr das Thema Serverhardware näher zu bringen: Server zusammenbauen ...

iOS
Facetime Nummer
gelöst Frage von ral9004iOS16 Kommentare

Hallo Ein Kollege bat mich, ihm für den Videochat meine Facetime Nummer zu mailen. Meine Facetime App läuft auf ...

Administrator Magazin
08 | 2020 Cloud-First-Strategien sind inzwischen die Regel und nicht mehr die Ausnahme und Workloads verlagern sich damit in die Cloud – auch Datenbanken. Dort geht es aber nicht nur um die Frage, wie die Datenbestände in die Wolke zu migrieren sind, sondern auch darum, welche Datenbank ...