python – 在字符串末尾匹配(非嵌套)平衡括号系列

python – 在字符串末尾匹配(非嵌套)平衡括号系列,第1张

概述如何匹配出现在字符串末尾的一个或多个括号表达式? 输入: 'hello (i) (m:foo)' 期望的输出: ['i', 'm:foo'] 用于python脚本. Paren标记不能出现在彼此内部(no nesting),并且括号表达式可以用空格分隔. 它比初看起来更难,至少在我看来是如此. paren_pattern = re.compile(r"\(([^()]*)\)(?=(?:\s*\( 如何匹配出现在字符串末尾的一个或多个括号表达式?

输入:

'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 – 在字符串末尾匹配(非嵌套)平衡括号系列所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1194419.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存