получил действительно странную проблему. Мой (Python) RegEx выглядит следующим образом:RegEx/Python: необязательный пробел не найден
u'^.*(?:Grundfl|gfl|wfl|wohnfl|whg|wohnung).*(\s\d{1,3}[.,]?\d{1,2}?)\s*(?:m\u00B2|qm)'
В re.findall() - термин, это должно бросить два матча на следующий текст: "... от 71m² до 83m²" Однако только 83 соответствует. Проблема имеет какое-то отношение к необязательному пробелу между числом (\ s \ d {1,3} [.,]? \ D {1,2}?) И квадратными метрами (?: M \ u00B2 | qm), поскольку, когда я удаляю \ s *, только 71 соответствует ожидаемому. Я не знаю, что не так с моим регулярным выражением. Спасибо за помощь!
вопрос несколько неясно: вы хотите, чтобы получить первый номер? Затем попробуйте ['^. * (?: Grundfl | gfl | wfl | wohnfl | whg | wohnung). *? \ S (\ d {1,3} [.,]? \ D {1,2}?) \ s * (?: т \ u00B2 | QM) '] (https://regex101.com/r/iU2iV0/1). Вы не получите двух совпадений, потому что шаблон привязан в начале строки с '^'. Итак, попробуйте ['.. *? (?: Grundfl | gfl | wfl | wohnfl | whg | wohnung). *? \ S (\ d {1,3} [.,]? \ D {1,2} ?) \ s * (? ?: м \ u00B2 | QM) (: \ з + к \ s + (\ d {1,3} \ d {1,2} [,.]?) \ s * (? : м \ u00B2 | QM)) '] (https://regex101.com/r/iU2iV0/3?). Или просто просто ['(\ d {1,3} [.,]? \ D {1,2}?) \ S * (?: M \ u00B2 | qm)'] (https://regex101.com/r/iU2iV0/4) –
Я не могу воспроизвести это - удаление '\ s *' не изменяет соответствие: https://regex101.com/r/mO1rH2/1 - но кроме этого '' \ d {1,2}? 'не означает« соответствует 1 или 2 цифрам, необязательно »- в любом случае вам нужно' \ d {0,2} '. –
Не удалось ли это вообще упростить: ['(\ d {1,2}) \ D + (\ d {1,2})'] (https://regex101.com/r/mO1rH2/2)? – Jan