| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

04-01-2011, 16:52
|
|
mpag
Registrierter Benutzer
|
|
Registriert seit: Jan 2011
Beiträge: 4
|
|
ewiges regex Problem
Hi @ all,
ich habe folgende Gundlage:
5,5 x 17 cm
5 x 17,5 cm
5,5 x 17,5 cm
5 x 17 cm
also: \d{1,2]%evtl komma%\d{1,2} x \d{1,2}%evtl komma%\d{1,2} cm
Also bräuchte ich doch etwas wie * x * cm.
Wie funktioniert das für php, ich musste das bisher noch nie machen, aber bräuchte das recht dringend. Wäre echt genial, wenn mir jemand die Lösung zelebrieren könnte.
Besten Dank euch
|

04-01-2011, 17:14
|
|
Skaschy
Registrierter Benutzer
|
|
Registriert seit: Jun 2002
Ort: Bad Wörishofen (Allgäu)
Beiträge: 582
|
|
Code:
(\d+|\d+\,\d+)( |)(cm| )( |)x( |)(\d+|\d+,\d+)( |)(cm| )( |)
Mal eben aus dem Stehgreif:
Müsste eigentlich alle von gelisteten Strings matchen. auch zbs. "$ cm x $ cm"
Wenn du nur "$ x $ cm" validieren möchtest reicht folgendes:
Code:
(\d+|\d+\,\d+)( |)x( |)(\d+|\d+,\d+)( |)(cm| )
Erklärung:
(d\+|d+\,\d+) = (if|or) - Entweder nur \d+ oder \d+,\d+
__________________
Gruss TobY
Geändert von Skaschy (04-01-2011 um 17:16 Uhr)
|

04-01-2011, 19:43
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
Was soll denn "( |)" sein? Ein optionales Leerzeichen?
|

04-01-2011, 19:54
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.328
|
|
PHP-Code:
function parse_numbers($text) { return sscanf(str_replace(',', '.', $text), '%f x %f cm'); }
print_r(parse_numbers('5,5 x 17 cm')); // Array // ( // [0] => 5.5 // [1] => 17 // )
print_r(parse_numbers('5 x 17,5 cm')); // Array // ( // [0] => 5 // [1] => 17.5 // )
print_r(parse_numbers('5,5 x 17,5 cm')); // Array // ( // [0] => 5.5 // [1] => 17.5 // )
print_r(parse_numbers('5 x 17 cm')); // Array // ( // [0] => 5 // [1] => 17 // )
|

04-01-2011, 20:01
|
|
Skaschy
Registrierter Benutzer
|
|
Registriert seit: Jun 2002
Ort: Bad Wörishofen (Allgäu)
Beiträge: 582
|
|
Zitat:
Zitat von onemorenerd
Was soll denn "( |)" sein? Ein optionales Leerzeichen?
|
Ja, das sollte es eigentlich sein.
__________________
Gruss TobY
|

05-01-2011, 08:20
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
Dafür wäre " ?" oder "\s?" besser geeignet.
|

05-01-2011, 09:07
|
|
mpag
Registrierter Benutzer
|
|
Registriert seit: Jan 2011
Beiträge: 4
|
|
schonmal vielen Dank euch 
Leider funktioniert es noch nicht so, aber ich bin ja jetzt auf der richtigen Spur. Problem ist nur noch, dass vor dem Format noch ein div. langer Text steht. Aber das sollte doch eigentlich nichts aus machen, oder?
|

05-01-2011, 09:17
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
|

05-01-2011, 09:28
|
|
mpag
Registrierter Benutzer
|
|
Registriert seit: Jan 2011
Beiträge: 4
|
|
Cool, ich werde es ausprobieren und Feedback geben.
Euch schonmal vielen Dank
|

05-01-2011, 10:12
|
|
Skaschy
Registrierter Benutzer
|
|
Registriert seit: Jun 2002
Ort: Bad Wörishofen (Allgäu)
Beiträge: 582
|
|
Zitat:
Zitat von onemorenerd
Dafür wäre " ?" oder "\s?" besser geeignet.
|
Danke für den Tipp!
__________________
Gruss TobY
|

12-01-2011, 11:01
|
|
mpag
Registrierter Benutzer
|
|
Registriert seit: Jan 2011
Beiträge: 4
|
|
es funktioniert wunderbar 
Besten Dank nochmal
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
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.
HTML-Code ist aus.
|
|
|
|
PHP News
|