我需要帮助找出一些Python正则表达式

时间:2011-12-02 05:09:31

标签: python regex

我试图将我的头部正确地包裹在下面,但我的推理仍然有很大的漏洞。什么是?::,有人可以为我正确解释

rule_syntax = re.compile('(\\\\*)'\
    '(?:(?::([a-zA-Z_][a-zA-Z_0-9]*)?()(?:#(.*?)#)?)'\
      '|(?:<([a-zA-Z_][a-zA-Z_0-9]*)?(?::([a-zA-Z_]*)'\
        '(?::((?:\\\\.|[^\\\\>]+)+)?)?)?>))')

2 个答案:

答案 0 :(得分:4)

您可能希望了解两种工具以帮助您理解

  1. Regexper创建正则表达式的可视化表示,here's yoursenter image description here
  2. Regexpal是一个工具,可让您输入正则表达式和各种字符串,并查看匹配的内容,here's yours with some example matches

答案 1 :(得分:3)

(?:expr)与普通括号(expr)一样,但为了以后检索群组(反向引用,re.subMatchObject.group),括号内的组以{{开头1}}被排除在外。如果您需要在括号中捕获复杂表达式以将?:等其他运算符应用于它,但是不希望将它与您实际需要稍后检索的组混合在一起,则此功能非常有用。

*只是?::,后跟文字?: