【问题标题】:Replace integer value via regular expression with python通过正则表达式用python替换整数值
【发布时间】:2011-02-16 17:19:31
【问题描述】:

嗯, 我正在尝试在 xml 上应用一些正则表达式(搜索/替换)。是的,我必须使用一些 lib。但在那种情况下我不能。我的问题是,您可能会发现,用整数替换节点的值。当我尝试这样做时,它给了我分组错误。这是我的模式:

搜索模式:

(<fieldset>)([^>].+)(<ipadd>)([^>].+)(<value>)([^>].+)(</value>)([^>].+)(</ipadd>)([^>].+)(</fieldset>)

替换模式:

\1\2\3\4\5123.123.123.123\7\8\9\10\11

如您所见,第五组在替换模式中变为“\5123”。当然它不起作用。

如果我使用这样的东西:

\1\2\3\4\5 123.123.123.123\7\8\9\10\11

它有效。但我不想要空间或其他东西。

它也适用于字符串:

\1\2\3\4\5foofoofoo\7\8\9\10\11

啊,我正在使用 re.sub() 进行替换。

有没有办法不用空格就可以使用?

谢谢大家

【问题讨论】:

    标签: python regex


    【解决方案1】:

    来自Python Regular Expression operations - re.sub(pattern, repl, string[, count, flags])

    除了字符转义和 如上所述的反向引用, \g&lt;name&gt; 将使用子字符串 由名为 name 的组匹配,如 由(?P&lt;name&gt;...) 语法定义。 \g&lt;number&gt; 使用对应的 组号; \g&lt;2&gt; 因此是 等价于\2,但没有歧义 替换为\g&lt;2&gt;0\20 将被解释为参考 第 20 组,不是对第 2 组的引用 后跟文字字符“0”。 反向引用\g&lt;0&gt; 替换为 匹配的整个子字符串 回复。

    【讨论】:

      猜你喜欢
      • 2022-11-04
      • 2011-04-29
      • 2012-06-17
      • 1970-01-01
      • 1970-01-01
      • 2021-10-11
      • 2018-01-19
      • 2019-11-19
      • 1970-01-01
      相关资源
      最近更新 更多