python 2.7+ 中的组引用无效

2024-05-09

我正在尝试将我的网页(在 django 中创建)中的所有 WikiLink 类型的字符串转换为 html 链接。

我正在使用以下表达式

import re
expr = r'\s+[A-Z][a-z]+[A-Z][a-z]+\s'
repl=r'<a href="/photos/\1">\1</a>'
mystr = 'this is a string to Test whether WikiLink will work ProPerly'

parser=re.compile(expr)
parser.sub(repl, mystr)

这将返回以下字符串,并替换该字符串的十六进制值。

"this is a string to Test whether<a href='/mywiki/\x01>\x01</a>'will work<a href='/mywiki/\x01>\x01</a>'"

看着蟒蛇帮助 http://docs.python.org/2/library/re.html#re.sub对于 re.sub,我尝试将 \1 更改为 \g 但这会导致无效的组引用错误。

请帮助我了解如何让它发挥作用


这里的问题是你没有任何捕获的组expr.

无论您想在比赛的哪个部分出现\1,您需要放入括号内。例如:

>>> expr = r'\s+([A-Z][a-z]+[A-Z][a-z]+)\s'
>>> parser=re.compile(expr)
>>> parser.sub(repl, mystr)
'this is a string to Test whether<a href="/photos/WikiLink">WikiLink</a>will work ProPerly'

反向引用\1指匹配中的组 1,它是与第一个括号内的子表达式匹配的部分。同样地,\2是组 2,即与第二个带括号的子表达式匹配的部分,依此类推。如果你使用\1当你的组少于 1 个时,一些正则表达式引擎会给你一个错误,其他引擎会使用文字'\1'字符,ctrl-A; Python 执行后者,ctrl-A 的规范表示是'\x01',所以这就是你这么看的原因。

第 0 组是整场比赛。但这不是您在本例中想要的,因为您不希望空格成为替换的一部分。

您需要的唯一原因g语法是指简单的反向引用不明确。例如,如果子是123\1456,无法判断这是否意味着123,然后是组 1,然后是456, or 123接下来是组 1456,或者……

进一步阅读分组和反向引用。 http://www.regular-expressions.info/brackets.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python 2.7+ 中的组引用无效 的相关文章

随机推荐

  • 为什么当我滚动父项时,position().top 会发生变化?

    jQuery position http api jquery com position returns 匹配集合中第一个元素的当前坐标 元素 相对于偏移父级 所以 滚动父级是不应该改变立场 right 我得到的结果这把小提琴 http j
  • 如何判断我是在 64 位 JVM 还是 32 位 JVM 中运行(在程序内)?

    如何判断应用程序运行的 JVM 是 32 位还是 64 位 具体来说 我可以使用哪些函数或属性来在程序中检测到这一点 对于某些版本的 Java 您可以使用标志从命令行检查 JVM 的位数 d32 and d64 java help d32
  • 如何访问 Play Guice 模块中的请求?

    我正在编写一个处理多个系统的应用程序 用户可以选择他想要使用的系统 我将该系统 ID 存储在会话 客户端会话 中 现在我有服务课程 比如说客户服务 class CustomerService val systemID String Impl
  • 函数类型有什么用?

    鉴于以下两个typedefs typedef void pftype int typedef void ftype int 我明白第一个定义pftype作为指向一个函数的指针 该函数接受一个int参数并且不返回任何内容 第二个定义ftype
  • 如何使用 JQuery/Javascript 更改悬停时 div 的内容

    我正在尝试使用 JQuery 更改将鼠标悬停在 div 上时的内容 我已经看到了有关堆栈溢出的答案 但我似乎无法让它工作 我试过了 imgDiv mouseover function tdiv textContent hovering fu
  • Java 中的 HashMap 和 Map 对象有什么区别?

    我创建的以下地图之间有什么区别 在另一个问题中 人们似乎可以互换使用它们来回答 我想知道它们是否 如何不同 HashMap
  • 将 Django OAuth2 提供程序与 JupyterHub 结合使用

    我正在尝试运行与 JupyterHub 服务器配对的 Django Web 应用程序 用户通过 Web 应用程序输入 然后在登录后获得对笔记本服务器的访问权限 为了促进这一点 我尝试使用OAuth2 其中 Django 提供身份验证 Jup
  • d3.js:非线性图轴

    我正在尝试在轴上添加自定义比例 如下所示 这个想法是 一个刻度总是比前一个刻度大 2 倍 我的理解是 这是一个定制秤 我做了一些研究 但找不到类似的东西 所以我想我的问题实际上是两个问题 这个尺度是数学世界的 标准 吗 这是否可以使用来实现
  • PHP_CodeSniffer - 显示失败的嗅探

    PHP CodeSniffer 中是否有设置来显示失败的嗅探 我将输出与我们的编码标准进行比较 并且一一使用很难破译哪个测试失败 看看我们可能想忽略哪个 如果有一种简单的方法来显示故障嗅探 那么我可以更轻松 更快地完成配置 您可以使用 s
  • Angular 2循环遍历列表有一些延迟

    如何使用 Angular 2 和 TypeScript 以一定延迟循环遍历数组 我有一个数组 students Array
  • 使用 cygwin 安装 rsync [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想通过 rsync 备份 Solaris 服务器上的 Win XP 中的目录 我安装了 cygwin 但是当我输入 rsync 时 我得
  • 屏幕截图忽略了一些窗口

    我正在 MFC 中工作 我正在尝试捕获桌面的 bmp 我正在使用 GetDC NULL 来执行此操作 但它似乎忽略了特殊的皮肤窗口 它似乎忽略了用 UpdateLayeredWindow 绘制的窗口 此行为似乎仅发生在 Vista x64
  • 具有 Azure Active Directory 身份验证的 Jenkins:REST API 访问不适用于不记名令牌

    我需要使用 python 代码访问 Jenkins REST API 需要一些有关正确方法的指导 我在 apache tomcat 中托管了 jenkins v2 176 1 并启用了 SSL 我已根据以下内容配置了 Azure AD 身份
  • jpackage linux 创建的桌面文件不足

    我刚刚开始使用 jpackage 它是一个非常棒的工具 只要迈出一步 我的肩上的工作就减轻了很多 我对看起来硬编码且无法定制的东西越感到惊讶 JPackage 自动生成启动器 lib
  • 从 Roslyn 中的行号获取节点

    我怎样才能得到一个SyntaxNode基于行号 否则如果有可能得到LineSpan该行号然后到节点 您可以从文档文本中获取行的跨度 从那里 您可以找到与线的跨度相交的所有节点 这将返回多个语法节点 然后您可以使用您的条件来提取您要查找的语法
  • 在 jQuery UI 日期选择器中仅选择特定日期(日期列表来自 AJAX)

    在这里 我发送电影 ID 并获取可用天数 我想将其设置到日历中 但它不起作用并且它禁用所有日期 它从 PHP 返回日期字符串 日期字符串正确 但日历不起作用 请帮忙 日期字符串示例 28 02 2012 29 02 2012 01 03 2
  • 如何在 NextJS 应用程序中处理公共和私有路由?

    我正在开发一个具有公共和管理路由的应用程序 在过去的 CRA 应用程序中 我们使用了自定义路由元素 但我们在 nextjs 中没有 Thins 我们有很多公共页面 我们有 20 个私人页面 路线 在 nextjs 中处理受保护的经过身份验证
  • 使用对称密钥 (AES -128) 签名和验证消息

    我想知道对称密钥可以用来签署消息吗 我们可以使用共享密钥进行加密 另外 当使用对称密钥进行签名时 JAVA 中可以使用什么 API 来加载密钥并对消息进行签名 如果我使用 java security 中的 Signature 它有一个 ap
  • 谁应该在 MvvmCross 中创建视图模型实例

    澄清一下 我知道 MvvmCross 在创建视图模型的位置和方式方面非常灵活 我的问题更多的是关于适当的关注点分离 以简化复杂的跨平台应用程序的设计 假设我们有一个包含客户列表和客户详细信息的应用程序 在 iPad 和 Surface 上
  • python 2.7+ 中的组引用无效

    我正在尝试将我的网页 在 django 中创建 中的所有 WikiLink 类型的字符串转换为 html 链接 我正在使用以下表达式 import re expr r s A Z a z A Z a z s repl r a href 1