Situation
Given are some titles with measuremnts and units in various combinations, I´m focused to extract the measurements and units with unit m
.
1 Kabel0,3m
2 Kabel,0,3 m m
3 Kabelx,0.3 m
4 Kabel 1m,
5 Kabel 1 m/
6 Kabel 1 HW-Y 2.0 m LAN/LAN RJ45/2xRJ45 Homeway f.2 unabh.Datennetz-Anwend.blau
7 Rundleitung 0,24 mm 2/ 250 m,8p
8 Televes TV/RF-Empfängeranschlußkabel 10, 0 m weiss
Best try
Still struggling with the the line 7 to exclude the mm
(?P<match>(?P<value>\d (?:\.|,|)\s*\d*)\s*(?<unit>m))
https://regex101.com/r/5yH4GN/1
Expected result
Hope somebody can give me a hint, to come closer to a solution.
match | value | unit |
---|---|---|
0,3m | 0,3 | m |
0,3 m | 0,3 | m |
0.3 m | 0.3 | m |
1m | 1 | m |
1 m | 1 | m |
2.0 m | 2.0 | m |
250 m | 250 | m |
10, 0m | 10, 0 | m |
CodePudding user response:
For the unit m, optionally match the decimal part \d (?:[.,]\s*\d )?
where the digits after the dot or comma are not optional.
You could add the dot and comma to a character class [.,]
and add a word boundary \b
after the first m
to for example not match mm
(?P<match>(?P<value>\d (?:[.,]\s*\d )?)\s*(?<unit>m\b))