Python正则表达式失败

时间:2012-03-16 17:25:46

标签: python regex

首先是代码:

str = "(suf) some text here (stuff here)"
r = re.split(r"(?<=[\)]) (?=[\w\(])", str)

这是我用来解析格式化文件的一些代码的示例。我基本上试图得到('suf','some text here (stuff here)')作为结果。我已经尝试了各种排列,但它一直给我的是整个字符串。

1 个答案:

答案 0 :(得分:1)

您正在拆分字符串,而不是捕获内部匹配项。 如果你想在第一个括号中捕获字符串,将其他所有内容捕获到两个对象中,这可以与match一起使用(也可以使用split,这就是我要这样做的方式):

str = "(suf) some text here (stuff here)"
# capture anything inside first set of brackets
# then capture everything else, dropping any spaces between them
r = re.match(r"^\((.*?)\)\s*(.*)", str) 
r.groups()
r.group(1) # group(0) is the full original string
r.group(2)