假设我有一根这样的线。。。你知道吗
myStr = 'START1(stuff); II(morestuff); 8(lessstuff)'
…我想提取括号前的字符串,以及括号内的字符串:1
,stuff
,II
,morestuff
,8
,lessstuff
。我可以使用split(';')
等实现这一点,但我想看看是否可以使用re.search()
一下子实现。我试过。。。你知道吗
test = re.search( r'START(?:([I0-9]+)\(([^)]+?)\)(?:; )?)*', myStr ).groups()
…或更可读的格式。。。你知道吗
test = re.search( r'''
START # This part begins each string
(?: # non-capturing group
([I0-9]+) # capture label before parentheses
\(
([^)]+?) # any characters between the parentheses
\)
(?:; )? # semicolon + space delimiter
)*
''', myStr, re.VERBOSE ).groups()
…但我只得到最后一个点击:('8', 'lessstuff')
。有没有一种方法可以反引用表达式同一部分的多个命中?你知道吗
您可以在
findall
中使用此正则表达式来捕获文本:RegEx Demo
相关问题 更多 >
编程相关推荐