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 Problem mit preg match

Mitglied: FeuerTeufel

FeuerTeufel (Level 1) - Jetzt verbinden

14.11.2009, aktualisiert 17.11.2009, 4655 Aufrufe, 4 Kommentare

Hallo, ich habe eine Frage zu preg_match und deren Suchmuster. Ich kann googlen wie ich will, aber man findet immer nur die Standart-Suchmuster mit denen ich nichts anfangen kann.

Ich habe eine Zahl (String) von bis nach dem Muster '12-16' und ich möchte einmal die 12 und einmal die 16 in zwei verschiedene Strings/Variablen schreiben.

Nun dachte ich mir, mit preg_match geht das ganz einfach, in dem man einmal die Zeichenfolge vor dem - und einmal die Zeichenfolge nach dem - in eine Variable speichert.

01.
if (preg_match("/(.*?)\-/i", $startvariable, $ausgabe1)) $erster_wert = $ausgabe1[1]; //funktioniert! 
02.
if (preg_match("/-(.*?)", $startvariable, $ausgabe2)) $zweiter_wert = $ausgabe2[1];  // <--- funktioniert nicht!
Der erste Wert funktioniert. Ich habe in der Variable die '12'.

Aber beim der zweiten Wert kann ich alles anstellen was ich will, an der Zeile habe ich schon alles mögliche ausprobiert. Mit / \ und ^ sovie das minus in eckige klammern setzen oder runde klammern, mit und ohne /.... über Stunden hinweg.

Ich kriegs einfach net hin. Kann mir jemand erklären was ich falsch mache und warum das mit dem - nicht funktioniert - immerhin funktioniert es wenn ich anstelle des - nach einem Wort suche. Also mit Buchstaben hat er dort kein Problem, nur mit dem minus.

Ich will lediglich die Zahlen nach dem minus in eine Variable $zweiter_wert speichern.... das kann doch net so schwer sein.

Gruß
Niklasg
Mitglied: dog
14.11.2009 um 20:29 Uhr
Ich sehe hier wieder mal das Problem nicht:

01.
<?php 
02.
 
03.
	$input = '12-16'
04.
 
05.
	if(preg_match('/^(\d+)-(\d+)$/', $input, $match)) 
06.
		var_dump($match); 
07.
 
08.
?>
01.
array(3) { 
02.
  [0]=> 
03.
  string(5) "12-16" 
04.
  [1]=> 
05.
  string(2) "12" 
06.
  [2]=> 
07.
  string(2) "16" 
08.
}
Bitte warten ..
Mitglied: FeuerTeufel
14.11.2009 um 20:55 Uhr
Danke!
Es funktioniert perfekt.

Warum es aber so funktioniert, habe ich noch nicht verstanden*gg*. Es ist leider auch nirgendwo erklärt für was die einzelnen Symbole und Zeichen stehen.

Aber das Problem ist gelöst;)

Gruß
Niklasg
Bitte warten ..
Mitglied: dog
14.11.2009 um 21:04 Uhr
Eigentlich gibt es so viele Erklärungen zum Thema Regexen, dass man sich damit Jahre befassen könnte, aber mal ganz langsam:

/ - Das Zeichen leutet eine Regexp ein und auch wieder aus, alternativ hätte man auch @,# verwenden können - das entsprechende Zeichen muss innerhalb der Regex escapt werden
^ - Bezeichnet den Anfang einer Regex, d.h. die Exe muss am Anfang der durchsuchten Zeichenkette zutreffen
() - Die Klammern sorgen u.A. dafür, dass ein Treffer in den match-Array exportiert wird!
\d - Das ist ein Regex-Feature und trifft nur auf Zahlen zu, alternativ ginge auch [0-9]
+ - Das ist ein Quantitifier und beudetet "1 oder mehr"
$ - Das Zeichen steht für das Ende, d.h. im durchsuchten String darf jetzt nichts mehr kommen.
Bitte warten ..
Mitglied: FeuerTeufel
15.11.2009 um 01:56 Uhr
Danke für die Erklärungen dazu. So kann man es besser verstehn und lernen;)
Bitte warten ..
Ähnliche Inhalte
PHP
PHP Befehl preg match all
gelöst Frage von MatthiasKlein88PHP2 Kommentare

Schönen guten Morgen! Ich stoße derzeitig auf einem Problem bei dem Befehl "preg_match_all". Mein Ziel ist alle 11 in ...

PHP
Preg-replace mit Variablen nutzen
gelöst Frage von rzlbrnftPHP1 Kommentar

Ich möchte gerne ein kleines Joomla Tool umschreiben weil sich der Code für das preg_replace mittlerweile geändert hat. Es ...

Datenbanken

Verständnisfrage zu mysql match against

gelöst Frage von ShardasDatenbanken2 Kommentare

Liebe Datenbankentwickler, ich stehe gerade auf dem Schlauch vor einem vermutlich simplen Problem. In einer Tabelle gibt es eine ...

Batch & Shell

Powershell RegEx geht beim match aber beim replace nicht

gelöst Frage von H41mSh1C0RBatch & Shell4 Kommentare

Servus, das RegEx für die Logsnamen funktioniert schonmal. Jetzt habe ich nach dem gleichen Muster versucht mir einen RegEx ...

Neue Wissensbeiträge
Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 10 StundenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Sicherheit

Intel gibt neue Spectre V2-Microcode-Updates frei (20.02.2018)

Information von kgborn vor 11 StundenSicherheit

Intel hat zum 20. Februar 2018 weitere Microcode-Updates für OEMs freigegeben, um Systeme mit neueren Prozessoren gegen die Spectre ...

Microsoft
ARD-Doku - Das Microsoft Dilemma
Tipp von Knorkator vor 14 StundenMicrosoft3 Kommentare

Hallo zusammen, vor einigen Tagen lief in der ARD u.a. Reportage. Das Youtube Video dazu dürfte länger verfügbar sein. ...

Windows 10

Neue Sicherheitslücke in Windows 10 (Version 1709) durch Google öffentlich geworden

Information von kgborn vor 1 TagWindows 10

Vor ein paar Tagen haben Googles Sicherheitsforscher vom Projekt Zero eine Sicherheitslücke im Edge-Browser publiziert. Jetzt wurde eine weitere ...

Heiß diskutierte Inhalte
Windows Server
AD DS findet Domäne nicht, behebbar?
Frage von schapitzWindows Server40 Kommentare

Guten Tag, ich habe bei einem Kunden ein Problem mit den AD DS. Umgebung ist folgende: Windows Server 2016 ...

Router & Routing
LANCOM VPN CLIENT einrichten
Frage von Finchen961988Router & Routing27 Kommentare

Hallo, ich habe ein Problem und hoffe ihr könnt mir helfen, wir haben einen Kunden der hat einen Speedport ...

Router & Routing
ISC DHCP 2 Subnetze
gelöst Frage von janosch12Router & Routing19 Kommentare

Hallo, ich betreibe bei mir im Netzwerk einen ISC DHCP Server auf Debian, der DHCP verwaltet aktuell ein /24 ...

Switche und Hubs
Cisco SG350X-48 AdminIP in anderes VLAN
Frage von lcer00Switche und Hubs14 Kommentare

Hallo zusammen, ich habe ein Problem mir einem Cisco SG350X-48 bei der Erstinstallation wurde eine IP 192.168.0.254 (Default VLAN ...