我需要帮助解决一些 Python 正则表达式

发布于 2024-12-19 12:13:20 字数 283 浏览 0 评论 0原文

我试图正确地理解下面的内容,但我的推理仍然有很大的漏洞。什么是?::,有人可以为我正确解释一下吗

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

I have tried to properly wrap my head around the below but I still have big hole in my reasoning. What is ?::, and could someone explain it properly for me

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

遮云壑 2024-12-26 12:13:20

您可能希望研究两个工具来帮助您理解

  1. Regexper 创建正则表达式的可视化表示,<一href="http://www.regexper.com/#(%5C%5C*)(%3F%3A(%3F%3A%3A(%5Ba-zA-Z_%5D%5Ba-zA-Z_0-9) %5D*)%3F()(%3F%3A%23(.*%3F)%23)%3F)%7C(%3F%3A%3C (%5Ba-zA-Z_%5D%5Ba-zA-Z_0-9%5D*)%3F(%3F%3A%3A(%5Ba-zA-Z_%5D*)(%3F% 3A%3A((%3F%3A%5C%5C.%7C%5B%5E%5C%5C%3E%5D%2B)%2B)%3F)%3F)%3F%3E))" rel="nofollow noreferrer">这是你的:
    在此处输入图像描述
  2. 正则表达式< /a> 是一个工具,允许您输入正则表达式和各种字符串并查看匹配的内容,这是您的一些匹配示例

There are two tools that you may wish to look into to help with your understanding

  1. Regexper creates a visual representation of regex, here's yours:
    enter image description here
  2. Regexpal is a tool that allows you to input a regex and various strings and see what matches, here's yours with some example matches
对你再特殊 2024-12-26 12:13:20

(?:expr) 就像普通的括号 (expr) 一样,只不过是为了稍后检索组(反向引用、re.sub、或 MatchObject.group),以 ?: 开头的括号组被排除。如果您需要捕获括号中的复杂表达式以对其应用另一个运算符(如 *),但又不想将其与您实际需要检索的组混合在一起,这可能会很有用之后。'

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

(?:expr) is just like normal parentheses (expr), except that for purposes of retrieving groups later (backreferences, re.sub, or MatchObject.group), parenthesized groups beginning with ?: are excluded. This can be useful if you need to capture a complex expression in parentheses to apply another operator like * to it, but don't want to get it mixed in with groups that you'll actually need to retrieve later.'

?:: is simply ?: followed by a literal :.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文