【发布时间】:2017-09-18 08:05:27
【问题描述】:
print 'cycle' ;While i in range(1,n) [[print "Number:" ;print i; print 'and,']]
例如,我有这样的一行。我只想从双方括号内的 [[ ... ]] 子字符串中提取分号字符。
如果我使用re.search(\[\[.*(\s*;).*\]\]),我只会得到一个分号。有没有合适的解决方案?
【问题讨论】:
-
不,没有真正好的正则表达式解决方案,但
;(?=(?:(?!\[\[).)*\]\])可能工作得很好。 -
您能否简要解释一下这是如何工作的?
-
与其使用正则表达式来尝试匹配 [[ ]] 内的每个分号分隔的组,您可能会发现使用正则表达式提取 [[ ]] 内的所有内容,然后拆分它更容易、更健壮在分号上捕获。这将避免不应该匹配的已接受解决方案的问题!
标签: python regex python-2.7 regex-group