3000,00 M² filtern mit Regex

#1
Hallo zusamen

Ich habe mal eine frage zu Regex:

Hier ist mein code:

(\d+[\.,]\d{0,3}[\. ,]\d{0,5}|\d{1,6})(([ ]?){1,6}(m²|m2|M2))

Sample text for testing:

26 M24-7 24V , komplett liefern und betriebsfertig <---- Mein Problem, soll nicht erfassen.
abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789 _+-.,!@#$%^&*();\/|<>"'
12345 -98.7 3.141 .6180 9,000 +42
555.123.4567 +1-(800)-555-2468
foo@demo.net bar.ba@test.co.uk
www.demo.com http://foo.co.uk/
http://regexr.com/foo.html?q=bar
https://mediatemple.net
8 /4 0,00 kg 0,00 m²
2313
32123 m² asdsad

So sieht die filterung aus. Das problem ist nur das er nach M24-7 <---- Das soll er zum beispiel garnicht erfassen.

Was denkt ihr über den CODE
(\d+[\.,]\d{0,3}[\. ,]\d{0,5}|\d{1,6})(([ ]?){1,6}(m²|m2|M2)[^a-zA-Z0-9])
 
#3
Und was willst du genau Herausfiltern?
Nachtrag:

Vorschlag
Ignore Case einstellen und dann:
[\d,.]+\s*m[²2](?!\w)

Noch ein Nachtrag. Ich würde ² durch \xB2 serzen (Hex-Wert). Das mache ich meistens mit Sonderzeichen
[\d,.]+\s*m[2\xB2](?!\w)
 
Zuletzt bearbeitet:
#4
Wow Yaslaw Danke :D

Ich filtere in der Lüftungs Industrie m² m2 M2 Lüftungskanäle

Dein Code Hilft mir mehr zu verstehen. Endziel ist es Kalkulation zu automatisieren. Am anfang reicht es wenn ich die sachen schneller finden kann.

So sieht der PDF TEXT aus.

Luftleitung als Formstück, Kantenlänge bis 500 mm
Luftleitung als Formstück, Kantenlänge bis 500 mm
Formstück für Luftleitung als Rechteckkanal, Oberfläche
entsprechend DIN 18 379 ermittelt, einschl. einwandiger
Leitblechen in Bögen. Anzahl entsprechend der Abmessung
des Kanals. Ausführung Stahl verzinkt EN 1507 / DIN EN 1505
sonst wie vor in vollem Wortlaut beschrieben.
10,000 m² ......................... .........................

Später habe ich vor so zu filtern:

Luftleitung als Formstück, Kantenlänge bis 500 mm
Luftleitung als Formstück, Kantenlänge bis 500 mm
Formstück für Luftleitung als Rechteckkanal, Oberfläche
entsprechend DIN 18 379 ermittelt, einschl. einwandiger
Leitblechen in Bögen. Anzahl entsprechend der Abmessung
des Kanals. Ausführung Stahl verzinkt EN 1507 / DIN EN 1505
sonst wie vor in vollem Wortlaut beschrieben.
10,000 m² ......................... .........................

Finde Text mit Zahl. Filtere nur die Zahl.

Ich durchsuche 10 000 Seiten PDF nach diesen sachen Pro tag o_O
 
#5
Jepp. Das (?!\w) sollte weiterhelfen.
Das bedeutet nur, dass nach dem vorhergehenden Zeichen kein Wort-Zeichen folgen darf.
m2. wird akzeptiert. m234 aber nicht und m2aqbc auch nicht.
ggf musst du die üöä noch hinzufügen
Code:
(?![\wäöü])
 

Neue Beiträge