У меня есть список описаний, и я хочу, чтобы извлечь информацию блока, используя регулярное выражениеИспользование регулярных выражений для извлечения номера устройства
Я наблюдал video на регулярное выражение и вот что я получил
import re
x = ["Four 10-story towers - five 11-story residential towers around Lake Peterson - two 9-story hotel towers facing Devon Avenue & four levels of retail below the hotels",
"265 rental units",
"10 stories and contain 200 apartments",
"801 residential properties that include row homes, town homes, condos, single-family housing, apartments, and senior rental units",
"4-unit townhouse building (6,528 square feet of living space & 2,755 square feet of unheated garage)"]
unit=[]
for item in x:
extract = re.findall('[0-9]+.unit',item)
unit.append(extract)
print unit
это работает с концами строк в блоке, но я также заканчиваю строки 'rental unit','apartment','bed'
и другими, как в этом примере. Я мог бы сделать это с несколькими регулярными выражениями, но есть ли способ сделать это в пределах одного регулярного выражения?
Спасибо!
Использовать группу: '(?: Rent unit | apartment | bed)' вместо фиксированного слова –
Спасибо! Я не знал об этом. Опять же, спасибо! – qshngv
Если вы не знаете список единиц, вы не можете использовать только регулярное выражение. Скажем, вы можете использовать 'r '\ d + (?: \. \ D +)? [\ S -] \ w +', но он просто захватит '801 жилых', а не' 801 жилых объектов'. Regex не такой умный. –