我有一个描述列表,我想使用正则表达式
提取单位信息我在正则表达式上看了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'
和其他字符串结尾,如本例所示。
我可以使用多个正则表达式执行此操作,但是有一种方法可以在一个正则表达式中执行此操作吗?
谢谢!
答案 0 :(得分:0)
只要您不怕制作一个可怕的长正则表达式,您就可以使用以下内容:
compiled_re = re.compile(ur"(\d*)-unit|(\d*)\srental unit|(\d*)\sbed|(\d*)\sappartment")
unit = []
for item in x:
extract = re.findall(compiled_re, item)
unit.append(extract)
您必须使用新的“|”扩展正则表达式模式然后是每种可能的单元号引用类型的搜索模式。不幸的是,如果条目中的一致性非常低,这种方法将基本上无法使用。
另外,我可以建议使用像Regex101这样的正则表达式测试程序。它确实有助于确定你的正则表达式是否能达到你想要的效果。