2014-09-01 45 views
1

我正在解析一个大的DBF文件以导入到mongodb中。从字符串末尾搜索并拆分

一位在DBF文件中的字段被称为Description这就好比

WOMEN'S CC CROPPED TOP T-SHIRT - MELANGE GREY - S 
WOMEN'S CC CROPPED TOP T-SHIRT - MELANGE GREY - M 
WOMEN'S CC CROPPED TOP T-SHIRT - WHITE- L 
WOMEN'S CC CROPPED TOP T-SHIRT- WHITE -XL 
WOMEN'S CC CROPPED TOP T-SHIRT- WHITE -2XL 
WOMEN'S CC CROPPED TOP T-SHIRT- WHITE -3XL 
JUNIOR EP ORGANIC T-SHIRT - YELLOW- 3-4 YRS 
JUNIOR EP ORGANIC T-SHIRT - YELLOW - 5-6 YRS 
EP ORGANIC BIB - PINK -ONE SIZE 

什么会分裂这一点的最好方式,使我有product namecoloursize

在大多数情况下,我可以这样做:

try: 
    description, colour_name, size = style_meta_attributes['CN_DESC'].split('- ') 
    if colour_name not in colour_names: 
    colour_names.append(colour_name) 
    if size not in sizes_names: 
    sizes_names.append(size) 
except: 
    try: 
    description, colour_name, size = style_meta_attributes['CN_DESC'].split(' -') 
... 

每个splits = [' - ', '- ', ' -', ' -', ' - ', '-']

,但这样做的工作,当我有T-SHIRT3-4 YRS

大加赞赏任何意见。

回答

2

尝试

re.split(r'\s+-\s*|\s*-\s+', description) 

的想法是分隔符之前或之后需要的空格(或两侧)。

+0

非常感谢,这是完美的 – khinester 2014-09-01 09:09:48