python – 在字符串末尾匹配(非嵌套)平衡括号系列
发布时间:2020-12-20 12:15:18 所属栏目:Python 来源:网络整理
导读:如何匹配出现在字符串末尾的一个或多个括号表达式? 输入: 'hello (i) (m:foo)' 期望的输出: ['i','m:foo'] 用于python脚本. Paren标记不能出现在彼此内部(no nesting),并且括号表达式可以用空格分隔. 它比初看起来更难,至少在我看来是如此. 解决方法 pare
如何匹配出现在字符串末尾的一个或多个括号表达式?
输入: '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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |