输入:
'hello (i) (m:foo)'
期望的输出:
['i','m:foo']
用于python脚本. Paren标记不能出现在彼此内部(no nesting),并且括号表达式可以用空格分隔.
它比初看起来更难,至少在我看来是如此.
解决方法paren_pattern = re.compile(r"\(([^()]*)\)(?=(?:\s*\([^()]*\))*\s*$)")def getParens(s): return paren_pattern.findall(s)
甚至更短:
getParens = re.compile(r"\(([^()]*)\)(?=(?:\s*\([^()]*\))*\s*$)").findall
交代:
\( # opening paren([^()]*) # content,captured into group 1\) # closing paren(?= # look ahead for... (?:\s*\([^()]*\))* # a serIEs of parens,separated by whitespace \s* # possibly more whitespace after $ # end of string) # end of look ahead总结
以上是内存溢出为你收集整理的python – 在字符串末尾匹配(非嵌套)平衡括号系列全部内容,希望文章能够帮你解决python – 在字符串末尾匹配(非嵌套)平衡括号系列所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)