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

Was sind reguläre Ausdrücke

Mitglied: Batchfan

Batchfan (Level 1) - Jetzt verbinden

02.11.2011, aktualisiert 19:39 Uhr, 4753 Aufrufe, 16 Kommentare

Hallo liebe/r Batch-Freunde/in
ich bin neu hier und möchte mich kurz vorstellen, dann eine Frage stellen.
Ich bin 55, besitze seit 1993 einen PC und habe Freude an der Lösung
eines EDV-Problems mit einfachsten Mitteln. Der schnelle "Klick" ist heutzutage
wichtig, ok, wird von mir aber unter "keine Herausforderung" einsortiert.
Seit einiger Zeit lese ich hier mit und bin hellauf begeistert. Ich habe mir viel erlesen
können. Lieben Dank an dieser Stelle für die vielen tollen Beiträger an alle Schreiber.
Ich hoffe sehr, das meine Beiträge korrekt sind und der "rote Faden" erkennbar ist.
Ich hoffe das es ok ist, das bei mir weniger Tilden zu finden sind und von mir weniger
die "ich schreibe alles in eine Endcodezeile" bevorzugt wird

Zu meiner Frage:

In Hilfetexten lese ich sehr oft über "reguläre Ausdrücke"
Kann mir wer sagen was das ist und kann ggf. ein paar Beispiele
einer Anwendung sagen?

Lieben Dank für Euere Antworten vorweg !
Gruß Volker
Mitglied: mrtux
02.11.2011 um 19:46 Uhr
Hi und willkommen im Forum !

[ot]
Jetzt bin ich jetzt aber mal gespannt was da kommt....
[/ot]

Also ich kann es jedenfalls nicht besser (oder einfacher) beschreiben, als es hier schon steht. In der Praxis werden sie u.a. auch als Filterbeschreibungen von Parsern (z.B. XML/HTML Parsern) verwendet.

mrtux
Bitte warten ..
Mitglied: dog
02.11.2011 um 19:49 Uhr
Das kann man doch wie immer alles bei Wikipedia nachlesen...?

Reguläre Ausdrücke sind eine "Suchsprache".
Man definiert wie ein Text strukturell aufgebaut sein muss und kann danach suchen oder den Text auf Korrektheit überprüfen.

Möchtest du z.B. in einem Text ein Datum im Format TT.MM.JJJJ suchen, dann ist der reguläre Ausdruck dafür /[0-9]{2}\.[0-9]{2}\.[0-9]{4}/
Und wenn du jetzt mitgedacht hast merkst du auch, dass sich damit auch das Datum 99.14.1001 finden lassen würde.
Also müssen wir den regulären Ausdruck noch ausbauen: /(0?[1-9]|[12][0-9]|3[01])\.(0?[1-9]|1[012])\.[0-9]{1,4}/
Und selbst damit wäre ein Datum wie der 31.02.2011 noch nicht ausgeschlossen.

Du siehst also, dass Reguläre Ausdrücke ganz schnell ziemlich kompliziert werden und trotzdem oft noch Probleme haben.
Darum gilt bei RegExen der klassische Spruch:

Manche Leute denken "Ich habe ein Problem - ich werde das mit Regulären Ausdrücken lösen" - Jetzt haben sie zwei Probleme.
Bitte warten ..
Mitglied: 64748
02.11.2011 um 19:56 Uhr
Hallo Batchfan, willkommen hier im Forum,

Reguläre Ausdrücke beschreiben Eigenschaften von Zeichenketten. Sie sind in allen Programmiersprachen verfügbar, auch in Texteditoren usw.

Sie werden benutzt um bestimmte Zeichenketten zu finden bzw Text zu ersetzten.

Der Umfang und die Art der Regex-Maschine unterscheiden sich aber z.T. erheblich.

Tonangebend ist die Programmiersprache Perl, die dort verfügbaren Features gelten als das Maß aller Dinge in dem Bereich. Allerdings finden die regulären Ausdrücke im Windows-Bereich nicht so viel Verwendung wie bei Unix/Linux.

Dieser http://de.wikipedia.org/wiki/Regul%C3%A4rer_Ausdruck Wikipedia-Artikel gibt einen Überblick.

Das Buch "Reguläre Ausdrücke" von Jeffrey Friedl http://www.amazon.de/Regul%C3%A4re-Ausdr%C3%BCcke-Jeffrey-F-Friedl/dp/3 ... ist eines der besten Computer-Bücher die ich bisher gelesen habe.

Beispiele findest Du im Internet wie Sand am Meer. Für mich gehören Reguläre Ausdrücke zu den wichtigsten Werkzeugen bei meiner Arbeit. Wenn man sie beherrscht, kann man nicht mehr ohne sie.

Gruß

Markus
Bitte warten ..
Mitglied: Biber
02.11.2011 um 20:32 Uhr
Moin Batchfan,

willkommen im Forum.

Nur noch zwei Fussnoten zu den kompetenten Vor-Kommentaren.

a)
Ein Testen und gefahrloses Ausprobieren von "Regulären Ausdrücken" ist am CMD-Prompt möglich, beispielsweise mit
Dir /s /b | Findstr /R "<RegEx>"

--> Zu "Findstr" in Verbindung mit "RegEx" sollten auch Suchmaschinen einiges liefern.

b)
[OT]
Zitat von 64748:
...Für mich gehören Reguläre Ausdrücke zu den wichtigsten Werkzeugen bei meiner Arbeit.
Bei uns im Team sind eher spontane nicht ganz so reguläre Kraftausdrücke in mehreren Sprachen üblich.
Wenn man sie beherrscht, kann man nicht mehr ohne sie.
Das wiederum ist bei uns auch so.
[/OT]

Grüße
Biber
Bitte warten ..
Mitglied: brammer
02.11.2011 um 20:35 Uhr
Hallo,

OT
Reguläre Ausdrücke = Kraftausdrücke?

Das wäre mir neu.
Wobei manchmal das zweite besser funktioniert als die ersten....

OT


brammer
Bitte warten ..
Mitglied: Batchfan
02.11.2011 um 20:36 Uhr
Hallo zusammen
@mrtux: Lieben Dank für den Hinweis, sehr komplex und hilft mir leider nicht weil ich noch in den Batch-Kinderschuhen stecke. Danke aber trotzdem !
@dog: Sehr eindrucksvoll und weckt mein Interesse ... Werde ich mich durcharbeiten ... mit ...
@64748: ... mit dem Buch von O'Reilly. Habe ich bestellt.

Mal sehen was draus wird.
Mir fehlen noch ein wenig die kompletten Eingabezeilen um Zuzsammenhänge zu erkennen. Werde aber daran bauen und berichten
Gruß Volker
Bitte warten ..
Mitglied: nxclass
03.11.2011 um 11:37 Uhr
Kann mir wer sagen was das ist und kann ggf. ein paar Beispiele
01.
/(h[t]{2}p\:\/\/)?[w]{3}\.g[o]{2}gle\.de/
Bitte warten ..
Mitglied: Batchfan
06.11.2011 um 13:26 Uhr
So, hallo zusammen ...

ich war beruflich einige Tage unterwegs, was öfters mal vorkommen kann.
Habe aber nun das vom Markus empfohlene Buch bekommen. Habe die ersten
Seiten gelesen und ich denke, das das kein einfaches Thema ist.
Was mir noch total schwer fällt ist, diese Semantik auf der Eingabezeile zu verstehen.
Ich werde mal weiter suchen um einige Beispiele mal zusammenzusammeln.
Mir ist auch nicht klar, welcher Befehl das verarbeiten kann und welcher nicht oder
aber, wie man das ganz in einer Schleife einbindet ...
Nu werd ich zunächst aber mal lesen .... Wer aus dem Stegreif einige kleine verständliche
Beispiele auf Eingabezeile hätte, dem wäre ich sehr dankbar

Es grüßt, Volker
Bitte warten ..
Mitglied: 64748
07.11.2011 um 12:04 Uhr
Hallo Volker,

Wer aus dem Stegreif einige kleine verständliche Beispiele auf Eingabezeile hätte, dem wäre ich sehr dankbar

hier ein Beispiel. Kurze Erklärung, ich schreib mit Perl ein kurzes Programm welchen Geographische Koordinaten verarbeiten kann. Es geht darum, einen Eingabestring der Form "N 51° 3.123' E 006° 12.543'" umzuwandeln in einen Vektor mit Grad und Bogenminuten. Die folgende Funktion testet zunächst ob der übergebene String dem Format "N xx° xx.xxx'" oder "E xxx° xx.xxx'" entspricht und bricht sonst den Programmablauf ab.
sub str2vect{
      my $coordstring = shift ;
      die "Fehler: $coordstring \n " if $coordstring !~ /[NE]\s\d{2,3}°\s\d{1,2}\.\d{1,3}/ ;
      # ...
}
Der reguläre Ausdruck bedeutet: [NE] "N" oder "E",
\s ein Whitespace (Leerzeichen oder Tab)
\d eine Ziffer
{2,3} zwei oder drei davon
usw.
der Punkt muss hier mit Backslach escaped werden, weil er sonst auf "jedes Zeichen" passt.

Der Ausdruck kann natürlich noch verfeinert werden und dann testen, dass für die Grad und Minuten auch sinnvolle Werte eingegeben werden. Also die Gradzahl kann maximal gleich 180 sein, also testet man anstatt /\d{2,3}/ auf /[01]?\d{1,2}/

Übrigens ist das Buch von Friedl im Anbetracht der trockenen Materie wirklich gut zu lesen

Gruß

Markus
Bitte warten ..
Mitglied: Batchfan
08.11.2011 um 17:11 Uhr
Markus,
lieben Dank für Deinen Eintrag. Aber ich muß viel weiter vorne anfangen.
Das Buch ist sehr schwer zu lesen. Viel zuviel Text, zuwenige Beispiele mit einer kompletten Befehlszeile.
Wie der Author schreibt, ist es Erzählung, darin eingebettet Einzelheiten für den der das Handbuch darin
sucht. Dieses Buch wird, wenn ich mit den RA "gehen" gelernt habe, später zum Einsatz kommen. Im
Netz habe ich auch nicht viel brauchbares gefunden. Die meisten bieten nach wenigen Sätzen hochkomplexe
Eingabezeilen an. mmmmmhh ich denke da an "Reguläre Ausdrücke für Dummis ... "

Bitte habt also Geduld, ich muß erst eine passende Leseunterlage finden und das was ich habe mal mehr lesen ...

Das habe ich aber für andere Leser gefunden:
http://www.gaddo.de/temp/ausgang/Regulaere_Ausdruecke.pdf
http://de.globalsoftwareindex.com/tutorials/41/regulaere-ausdruecke-tut ... (hat mehere Teile ...)
http://www.funduc.com/regexpd.htm
http://www.micbie.at/wissenswertes/perl_kurs/Kap10.html

Gruß volker
Bitte warten ..
Mitglied: nxclass
08.11.2011 um 21:44 Uhr
noch ein Link (zu einem Link zu einem Tutorial) : https://www.administrator.de/index.php?link=2612
Bitte warten ..
Mitglied: Batchfan
09.11.2011 um 18:50 Uhr
Vielleicht mal diese konkrete Frage:

Mein Dateiordner hat u.a. folgende Dateien.
meier.txt
meyer.txt
Wie lautet der Dir-Befehl um genau diese auszufiltern ?

oder ...

bbccddee.txt
bcdebcde.txt
Wie lautet der Dir-Befehl um z.B. Dateien mit 2 gleiche aufeinanderfolgende Zeichen (cc) zu finden ?
oder
Die Datei mit geginnendem b und endendem t zu finden ?

Gruß volker
Bitte warten ..
Mitglied: 64748
09.11.2011 um 19:05 Uhr
Hallo Volker,

das bezieht sich jetzt auf Perl, angenommen Du hast einen String $name, dann kannst Du testen
if ( $name =~ /me[iy]er/ )
und zwei gleiche Buchstaben hintereinander
if ( $name =~ /\w{2}/ )
wobei \w auf alphanumerische Zeichen passt, also das gleiche ist wie [a-zA-Z_]

Markus
Bitte warten ..
Mitglied: dog
09.11.2011 um 19:08 Uhr
um genau diese auszufiltern ?

01.
/me[iy]er\.txt/
Dateien mit 2 gleiche aufeinanderfolgende Zeichen (cc) zu finden ?

01.
/(.)\1/
Die Lösung if ( $name =~ /\w{2}/ ) ist übrigens falsch. Das steht nur für 2 beliebige Buchstaben. Nicht zweimal das selbe Zeichen.

Die Datei mit geginnendem b und endendem t zu finden ?

01.
/^b.*t$/
Bitte warten ..
Mitglied: Biber
09.11.2011 um 19:32 Uhr
Moin Batchfan,

ein Stück weiter oben verwies ich schon vergeblich auf die Möglichkeit des gefahrlosen RegEx-Testens am CMD-Prompt mit FindStr.

Beispiele dafür, bezogen auf deine Übungsfragestellung:
d:\temp>echo.>bbccddee.txt

d:\temp>echo.>bcdebcde.txt

d:\temp>dir /a-d /b|findstr /r "^b.*t$"
backup2.txt
battest.bat
bbccddee.txt
bcdebcde.txt
biblio.dbt
binfile.txt
bsp.txt
bspUTF_Typed.txt

d:\temp>dir /A-d /b|findstr /r "^b.*cc.*t$"
bbccddee.txt

d:\temp>
  • der erste eingegebene Befehl dir /a-d /b|findstr /r "^b.*t$" listet alle Dateien auf, die mit "b" beginnen und mit "t" kläglich enden.
  • der zweite eingegebene Befehl dir /A-d /b|findstr /r "^b.*cc.*t$" listet alle Dateien auf, die mit "b" beginnen,mit "t" kläglich enden.und ein "cc" dazwischen haben.
In beiden Fällen übrigen jeweils bezogen auf ein kleingeschriebenes "b" bzw "t" resp. "cc".

Ist die Klein/Grossschreibung egal.... dann wäre das Ergebnis länger:
d:\temp>dir /a-d /b|findstr /i /r "^b.*t$"
backup2.txt
battest.bat
bbccddee.txt
bcdebcde.txt
Bibertest.txt
biblio.dbt
binfile.txt
bsp.txt
BspUTF8.txt
BspUTFcmda.txt
BspUTFcmdu.txt
BspUTFout.txt
bspUTF_Typed.txt
Grüße
Biber
Bitte warten ..
Mitglied: Batchfan
10.11.2011 um 19:47 Uhr
Danke zunächst einmal euch allen. Diese wenige Zeilen waren reichlich Futter für mich.
Anhand Euerer Beispiele weiß ich nun wie ich ein Suchmuster in einen Befehl auf der Kommandozeile einbinden muß.
Gerne einige Beispiel aus dem Leben am Prompt mehr ....
Wenn "nur" das Suchmuster wie bisher angegeben wird, habe ich Probleme mir vorzustellen wie ich das in eine
Befehlszeile einbinden muß. Diese Beispiele waren da jetzt wie ein aufgebrochenes Eis.
So weiß ich jetzt das z.B. ein Dir Befehl einen Input in einen Findstr-Befehl gibt und der diesen auswertet.
Lieber Biber, das bisherige ergebnislose ;-( Austesten von diesen Suchmustern machte ich ausschließlich am Prompt.
Sorry wenn ich das ungenau beschrieben hatte und Dein liebgemeinter Hinweis ohne Echo blieb.
Bin am WE unterwegs ... bin also nicht am PC zusammengebrochen wenn's keine Antwort gibt.
Danke aber für Euere Mühe und Geduld, wir lesen uns dann nächste Woche wieder.
Herzlichen Gruß, Volker
Bitte warten ..
Ähnliche Inhalte
IDE & Editoren
Textfile regular Expressions
gelöst Frage von brammerIDE & Editoren3 Kommentare

Hallo, ich stelle mich mit Regex gerade ein bisschen dämlich an Ich möchte in einer Textdatei alles nach einer ...

Entwicklung
Regular Expression für Finanz
gelöst Frage von DocuSnap-DudeEntwicklung10 Kommentare

Hallo, kann mir jemand kurz helfen: ich brauche für Eingabefelder in einer .NET-basierten Maske einen speziellen Software (hintendran eine ...

Entwicklung

Benötige Hilfe bei Regular Expression

gelöst Frage von Thomas91Entwicklung6 Kommentare

Hallo, ich benötige hilfe bei einem Regularen Ausdruck: dieser sollte wenn möglich ohne /ig auf zwei Zeilen einen treffer ...

Entwicklung

DevExpress Ausdruck generieren

gelöst Frage von TranministratorEntwicklung2 Kommentare

Hello All! weiß jemand ob man mit dem Ausdrucksgenerator so etwas hinbekommt? Vorher: TX - BB - Stirnbänder/Sonnenbl./Masken - ...

Neue Wissensbeiträge
Router & Routing

Zyxel VMG 1312 B30A - Firmwareupdate nur im "privaten" Firefox Modus möglich

Tipp von the-buccaneer vor 8 StundenRouter & Routing

Hatte hier ein Zyxel 1312 das ums verrecken kein Firmwareupdate durchführen wollte. Datei ist auswählbar, dann kommt der Fortschrittskreisel ...

Windows 7

Windows 7 u. Server 2008 (R2) SHA-2-Update kommt am 12. März 2019

Information von kgborn vor 1 TagWindows 75 Kommentare

Kleine Info für die Admins der oben genannten Maschinen. Ab Juli 2019 werden Updates von Microsoft nur noch mit ...

Firewall
PfSense 2.5.0 benötigt doch kein AES-NI
Information von ChriBo vor 3 TagenFirewall2 Kommentare

Hallo, Wie sich einige hier erinnern werden hat Jim Thompson in diesem Aritkel beschrieben, daß ab Version 2.5.0 ein ...

Internet
Copyright-Reform: Upload-Filter
Information von Frank vor 4 TagenInternet1 Kommentar

Hallo, viele Menschen reden aktuell von Upload-Filtern. Sie reden darüber, als wären es eine Selbstverständlichkeit, das Upload-Filter den Seitenbetreibern ...

Heiß diskutierte Inhalte
Hardware
IT-Werkzeugkoffer bis 50,- EUR
gelöst Frage von departure69Hardware46 Kommentare

Hallo. Ich bin als IT-Systembetreuer einer Gemeinde zusätzlich auch der IT-Systembetreuer einer Grund- und Hauptschule. Dort muß ich jedoch ...

Netzwerke
Verteilung von Programmdaten außerhalb des internen Netzwerkes
Frage von mertaufmbergNetzwerke27 Kommentare

Guten Morgen liebe Administratoren, ich versuche zurzeit eine möglichst sichere und einfache Lösung zu suchen, um ein Programmverzeichnis über ...

Netzwerkmanagement
Richtfunknetzwerk mit vielen Hops stabiler gestalten
Frage von turti83Netzwerkmanagement22 Kommentare

Hallo, in meinem Dorf habe ich vor ca. einem Jahr ein Backbone aufgebaut um die Nachbarschaft mit Internet zu ...

Hyper-V
Intel MSC Raid 5 Rebuild
Frage von DannysHyper-V19 Kommentare

Hallo Community, Ich habe einen Modul Server von Intel in Betrieb. Dort ist eine Festplatte aus dem Raid 5 ...