Zurück   klamm-Forum > Virtual World > Programmierung

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 21.11.2011, 09:39:57   #1 (permalink)
** Losedealer **
Benutzerbild von Handymann

ID: 418952
Lose-Remote
Reallife

Reg: 27.08.2011
Beiträge: 346
Handymann sorgt für eine eindrucksvolle AtmosphäreHandymann sorgt für eine eindrucksvolle Atmosphäre
Standard Die erste Zahl in einem String finden

Hallo ,

Ich möchte gern nur die erste Zahl in einem String finden.

z.b "aaaasssddddd4ddds66sasaa"
Ausgabe soll "4" sein.

z.b "xxxdd54443334556"
Ausgabe soll "5" sein.

Also immer die erste Zahl und nur eine Position die im String vorkommt.

Ich weiss das es mit preg_match geht , habe aber damit gar keine Erfahrung.
Handymann ist offline   Mit Zitat antworten
Gesponsorte Links
Alt 21.11.2011, 11:38:16   #2 (permalink)
Primus inter pares
Benutzerbild von DaPhreak

ID: 30143
Lose-Remote

DaPhreak eine Nachricht über ICQ schicken
Reg: 08.05.2006
Beiträge: 2.024
DaPhreak genießt hohes AnsehenDaPhreak genießt hohes AnsehenDaPhreak genießt hohes AnsehenDaPhreak genießt hohes AnsehenDaPhreak genießt hohes AnsehenDaPhreak genießt hohes AnsehenDaPhreak genießt hohes AnsehenDaPhreak genießt hohes AnsehenDaPhreak genießt hohes AnsehenDaPhreak genießt hohes AnsehenDaPhreak genießt hohes Ansehen
Standard

Hm, sowas?

PHP-Code:
1:
2:
3:
4:
5:
6:
7:

$found 
preg_match("[\d]"$suchstring,$matches);
if (
$found == 1) {
    
$firstdigit $matches[0];
} else {
    
// nix gefunden

"And pray that there's intelligent life somewhere out in space, because there's bugger all down here on earth." - Monty Python
DaPhreak ist offline   Mit Zitat antworten
Alt 21.11.2011, 11:46:30   #3 (permalink)
** Losedealer **
Benutzerbild von Handymann

ID: 418952
Lose-Remote
Reallife

Reg: 27.08.2011
Beiträge: 346
Handymann sorgt für eine eindrucksvolle AtmosphäreHandymann sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von DaPhreak Beitrag anzeigen
Hm, sowas?

PHP-Code:
1:
2:
3:
4:
5:
6:
7:

$found 
preg_match("[\d]"$suchstring,$matches);
if (
$found == 1) {
    
$firstdigit $matches[0];
} else {
    
// nix gefunden

DANKE !

Hatte es jetzt mal so probiert , das ging auch.

PHP-Code:
1:
$zwischen preg_match("([^a-z])",$output1,$output); 
Handymann ist offline Threadstarter   Mit Zitat antworten
Alt 21.11.2011, 12:04:27   #4 (permalink)
bekämpft die Mächte des Bösen
Benutzerbild von theHacker

ID: 69505
Lose-Remote

theHacker eine Nachricht über ICQ schicken theHacker eine Nachricht über AIM schicken theHacker eine Nachricht über MSN schicken theHacker eine Nachricht über Yahoo! schicken theHacker eine Nachricht über Skype™ schicken
Reg: 20.04.2006
Beiträge: 20.468
theHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes Ansehen
Standard

Das geht nicht. Hier würden alle Nicht-Buchstaben, wie Leerzeichen oder Satzzeichen auch matchen.
theHacker ist gerade online   Mit Zitat antworten
Alt 21.11.2011, 16:45:16   #5 (permalink)
ist maskulin
Benutzerbild von DasGuru

ID: 420909
Lose-Remote
Gesperrt

DasGuru eine Nachricht über ICQ schicken DasGuru eine Nachricht über Skype™ schicken
Reg: 16.08.2008
Beiträge: 1.899
DasGuru kann auf vieles stolz seinDasGuru kann auf vieles stolz seinDasGuru kann auf vieles stolz seinDasGuru kann auf vieles stolz seinDasGuru kann auf vieles stolz seinDasGuru kann auf vieles stolz seinDasGuru kann auf vieles stolz seinDasGuru kann auf vieles stolz seinDasGuru kann auf vieles stolz sein
Standard

um von dem preg_ wegzukommen, eine einfache Lösung.

Code:
1:
2:
3:
$string = 'xxxdd54443334556'; $settype($string, 'integer'); $erg = substr($string, 0,1);
Do not argue with an idiot. He will drag you down to his level and beat you with experience
99%Refback für alle
| Novoline-Spiele | ich zahle meine Schulden |
3 mio Lose + Aktivitätsboni bei eBesucher
| eSig




Geändert von DasGuru (21.11.2011 um 17:14:02 Uhr)
DasGuru ist offline   Mit Zitat antworten
Alt 21.11.2011, 16:52:52   #6 (permalink)
be forever curious
Benutzerbild von tleilax

ID: 27936
Lose-Remote

Reg: 20.04.2006
Beiträge: 2.259
tleilax genießt hohes Ansehentleilax genießt hohes Ansehentleilax genießt hohes Ansehentleilax genießt hohes Ansehentleilax genießt hohes Ansehentleilax genießt hohes Ansehentleilax genießt hohes Ansehentleilax genießt hohes Ansehentleilax genießt hohes Ansehentleilax genießt hohes Ansehentleilax genießt hohes Ansehen
Standard

Zitat:
Zitat von DasGuru Beitrag anzeigen
um von dem preg_ wegzukommen, eine einfache Lösung.
Bei mir kommt da immer 0 raus, weil der String nicht vernünftig in eine Zahl umgewandelt werden kann.

Ich als alter Einzeilerfreund würde es folgendermassen lösen:
PHP-Code:
1:
2:
3:
4:
<?php
$string 
'xxxdd54443334556';
$first_number reset(array_filter(str_split($string), 'ctype_digit'));
var_dump($first_number);
.lange tage und angenehme nächte, tlx
:.whatthemovie.com (Screenshots raten) | PHP ExportForce-Klasse
tleilax ist offline   Mit Zitat antworten
Alt 21.11.2011, 17:01:28   #7 (permalink)
ist maskulin
Benutzerbild von DasGuru

ID: 420909
Lose-Remote
Gesperrt

DasGuru eine Nachricht über ICQ schicken DasGuru eine Nachricht über Skype™ schicken
Reg: 16.08.2008
Beiträge: 1.899
DasGuru kann auf vieles stolz seinDasGuru kann auf vieles stolz seinDasGuru kann auf vieles stolz seinDasGuru kann auf vieles stolz seinDasGuru kann auf vieles stolz seinDasGuru kann auf vieles stolz seinDasGuru kann auf vieles stolz seinDasGuru kann auf vieles stolz seinDasGuru kann auf vieles stolz sein
Standard

PHP kann das sogar ganz gut umwandeln, ja sogar mit strings rechnen !

Und bei mir kommt 1 raus, warum das bei dir nicht geht find ich schon merkwürdig...

// offtopic
dein "Einzeiler" ist gar kein Einzeiler und wirklich schön lesen kann man das auch nicht. Ich finde ein Code muss schön eingerückt werden - aber das ist wohl Geschmackssache
Do not argue with an idiot. He will drag you down to his level and beat you with experience
99%Refback für alle
| Novoline-Spiele | ich zahle meine Schulden |
3 mio Lose + Aktivitätsboni bei eBesucher
| eSig



DasGuru ist offline   Mit Zitat antworten
Alt 21.11.2011, 17:07:29   #8 (permalink)
alias Echnaton
Benutzerbild von transversalis

ID: 309239
Lose-Remote

Reg: 18.01.2008
Beiträge: 2.399
transversalis genießt hohes Ansehentransversalis genießt hohes Ansehentransversalis genießt hohes Ansehentransversalis genießt hohes Ansehentransversalis genießt hohes Ansehentransversalis genießt hohes Ansehentransversalis genießt hohes Ansehentransversalis genießt hohes Ansehentransversalis genießt hohes Ansehentransversalis genießt hohes Ansehentransversalis genießt hohes Ansehen
Standard

wäre die Funktion strcspn eine Option ?
ggf in verbindung mit Substr.

Zitat:
int strcspn ( string $str1 , string $str2 [, int $start [, int $length ]] )

Gibt die Länge von str1 zurück, bis zu der kein Zeichen aus str2 vorkommt.

also:
PHP-Code:
1:
$erg substr($teststrcspn $test '1234567890' )+1) ; 
"transversalis teleport" sprach der Magier und war fort

Geändert von transversalis (21.11.2011 um 17:13:10 Uhr)
transversalis ist offline   Mit Zitat antworten
Alt 21.11.2011, 17:11:35   #9 (permalink)
ist maskulin
Benutzerbild von DasGuru

ID: 420909
Lose-Remote
Gesperrt

DasGuru eine Nachricht über ICQ schicken DasGuru eine Nachricht über Skype™ schicken
Reg: 16.08.2008
Beiträge: 1.899
DasGuru kann auf vieles stolz seinDasGuru kann auf vieles stolz seinDasGuru kann auf vieles stolz seinDasGuru kann auf vieles stolz seinDasGuru kann auf vieles stolz seinDasGuru kann auf vieles stolz seinDasGuru kann auf vieles stolz seinDasGuru kann auf vieles stolz seinDasGuru kann auf vieles stolz sein
Standard

@tleilax:
dann starte ich halt mal mein apache aber ich denke du hast Recht, das settype ist falsch... wie hab ich das nur sonst gemacht ?! *grübl*

*edit* auch nach dem Beispiel auf php.net geht das so... aber da ist der integer am Anfang des Strings

jepp, wenn das erste Zeichen im String eine Zahl ist funktioniert es

folgedes gibt '444' zurück:

PHP-Code:
1:
2:
$string = (int) '444xxxdd54443334556';
var_dump($string); 
und das hier gibt '0' zurück:
PHP-Code:
1:
2:
$string = (int) 'xxxdd54443334556';
var_dump($string); 


die Lösung von tleilax funktioniert aber ganz gut
Do not argue with an idiot. He will drag you down to his level and beat you with experience
99%Refback für alle
| Novoline-Spiele | ich zahle meine Schulden |
3 mio Lose + Aktivitätsboni bei eBesucher
| eSig




Geändert von DasGuru (21.11.2011 um 18:00:39 Uhr)
DasGuru ist offline   Mit Zitat antworten
Antwort

Gesponsorte Links

Anzeige


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Bestimmte Zeichen in einem String ersetzen (C++) Chris2130 Programmierung 8 19.01.2009 13:18:04
[PHP] Prüfen ob in einem String zahlen sind? traffic Programmierung 5 17.04.2007 21:22:35
[PHP] Einen Wert aus einem String traffic Programmierung 1 28.01.2007 13:05:03
[close][php]Aus einem String nur 15 Zeichen ausgeben traffic Programmierung 2 11.05.2006 14:15:41
PHP - RegExp - Alle Zahlen aus einem String k212198 Programmierung 1 03.05.2006 21:55:40


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:12:28 Uhr.