AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein RegEx-Verständnisproblem: Ganzzahlen
Thema durchsuchen
Ansicht
Themen-Optionen

RegEx-Verständnisproblem: Ganzzahlen

Ein Thema von Die Muhkuh · begonnen am 12. Mai 2008 · letzter Beitrag vom 12. Mai 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#1

RegEx-Verständnisproblem: Ganzzahlen

  Alt 12. Mai 2008, 11:49
Hi,

ich tue mich gerade an den RegExen mal wieder sehr schwer und das bei einem so einfachen.

Ich möchte überprüfen, ob in $var nur Zahlen und hab mir folgendes ausgedacht:

Code:
<?php
  $var = '24e2';
  $pattern = '#[0-9]+#';
 
  if ($val = preg_match($pattern, $var)) {
     echo $var . ' besteht nur aus Zahlen';
  }
  else {
     echo $var . ' besteht nicht nur aus Zahlen';
  }
 
  echo '
';
  var_dump($val);
?>
Leider gibt er mir aus, dass $var nur aus Zahlen besteht.
Ich könnte das ganze in diesem Fall auch mit ctype_digit machen, aber das ganze soll später noch auf float ausgebaut werden, deswegen möchte ich auch die positiven Ganzzahlen per RegEx herausfinden.

Grüße
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#2

Re: RegEx-Verständnisproblem: Ganzzahlen

  Alt 12. Mai 2008, 11:58
Hab zwar kein Plan von regulären Ausdrücken, aber damals als ich's brauchte hab ich immer einen angehauen.

Das Pattern "/\.(jpg|jpeg|gif|bmp|png)$/i" prüft, ob eine Erweiterung in nem Dateinamen vorkommt. Theoretisch kann man das doch einfach umbauen? Probier mal $pattern = "/\.(0-9)$/i"
  Mit Zitat antworten Zitat
Benutzerbild von Brainstalker
Brainstalker

Registriert seit: 9. Jan 2004
Ort: Berlin
176 Beiträge
 
Delphi 2009 Professional
 
#3

Re: RegEx-Verständnisproblem: Ganzzahlen

  Alt 12. Mai 2008, 12:07
Wenn dann, müsste es so heißen:
Code:
$pattern = "/(0-9)$/i"
weil sonst der Punkt noch überprüft wird.
Obs so stimmt weiß ich aber auch nicht genau, da ich mich damit auch nicht sonderlich auskenne.
Michael N.
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#4

Re: RegEx-Verständnisproblem: Ganzzahlen

  Alt 12. Mai 2008, 12:08


Code:
$pattern = '#^\d+$#';
Mit dem hier funktioniert das ganze. Ich glaub, ich versteh es so halbwegs. Ich hab bei anderen RegEx abgeschaut, die aber über mehrere Zeilen hinweg funktioniert, die haben nicht das mit dem ^ und $. Wenn ich die weglasse, funktioniert es auch nicht mehr.

Zur Ergänzung, der hier für float:

Code:
$pattern = '#^[0-9]+(\.([0-9]+))?$#';
Danke Euch beiden.
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#5

Re: RegEx-Verständnisproblem: Ganzzahlen

  Alt 12. Mai 2008, 12:13
Ah super - und auch wieder was gelernt.
  Mit Zitat antworten Zitat
Benutzerbild von Brainstalker
Brainstalker

Registriert seit: 9. Jan 2004
Ort: Berlin
176 Beiträge
 
Delphi 2009 Professional
 
#6

Re: RegEx-Verständnisproblem: Ganzzahlen

  Alt 12. Mai 2008, 13:17
Ich hab mir das jetzt nochmal genauer angesehen. Ist eigentlich gar nicht so kompliziert.
Code:
$pattern = '#^\d+$#';
Die Rauten sind die Begrenzung des Patterns. Statt dessen kann zb. auch ein Slash / oder ein Ausrufezeichen ! benutzt werden. Man darf nur keinen Backslash \ verwenden.
Das Zirkumflex ^ steht für den Anfang der Zeichenkette und das $ für das Ende der Zeichenkette.
\d gibt eine Ganzzahl an und das Plus + dahinter das ein oder mehr Zeichen vorkommen dürfen.

Code:
$pattern = '#^[0-9]+(\.([0-9]+))?$#';
Eckige Klammern [] geben einen Bereich an und Runde Klammern sind zur Abgrenzung da also ähnlich wie in der Mathematik.
Das Fragezeichen ? steht für 0 oder 1 Vorkommen das Ausdrucks.

Müsste so stimmen hoffe ich. Ich hatte noch irgendwo nen Link, ich werd den mal rauskramen und dann hier posten.
Michael N.
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#7

Re: RegEx-Verständnisproblem: Ganzzahlen

  Alt 12. Mai 2008, 13:20
Jupp, hier gibt's das ganze schön erklärt.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#8

Re: RegEx-Verständnisproblem: Ganzzahlen

  Alt 12. Mai 2008, 13:21
Hier kannst Du mehr nachlesen und Deine Regenechse auch testen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#9

Re: RegEx-Verständnisproblem: Ganzzahlen

  Alt 12. Mai 2008, 13:24
Da mag ich die Seite hier lieber. Da braucht man die Modifier nicht anklicken und das ganze wird auch mit pcre ausgewertet.
  Mit Zitat antworten Zitat
Benutzerbild von Brainstalker
Brainstalker

Registriert seit: 9. Jan 2004
Ort: Berlin
176 Beiträge
 
Delphi 2009 Professional
 
#10

Re: RegEx-Verständnisproblem: Ganzzahlen

  Alt 12. Mai 2008, 13:27
Ok hab den Link gefunden. Hier gibt es auch noch mal ne kurze Erklärung.
Michael N.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz