python正则表达式获取组字作为' initial _name _'

时间:2014-08-27 17:03:01

标签: python regex

我有一个python代码,它可以在像car(sedan,hatchback)car(limo)这样的群体之前将相同的词组合在一起,并将群组归为car(sedan,hatchback,limo)

但我无法将initial _name_(register,names)initial _name_(surnames)等字词分组 在我的代码中,我使用正则表达式来匹配像' car'这样的字符串。但是我应该如何获得initial _name_

我的代码(请更正我的正则表达式,将单词分组为initial _name_):

with open('text1.txt') as f:
    groups = collections.defaultdict(Group)
    group_pattern = re.compile(r'^(\S+)\((.*)\)$') <=regex to  be used for grouping initial _name_ before (...)
    current_group = None

    for line in f:
        line = line.strip()
        m = group_pattern.match(line)
        if m:    # this is a group definition line
            group_name, group_members = m.groups()
            groups[group_name].members.extend(group_members.split(','))

2 个答案:

答案 0 :(得分:1)

以下正则表达式会使部分<space>_name_成为可选部分,以便它与两种格式匹配。

^(\S+(?: _[^_]*_)?)\((.*)\)$

DEMO

答案 1 :(得分:0)

 ^(.*?)\((.*)\)$

这也会接受空间。