如何用匹配的转换替换重新匹配?

时间:2016-08-18 04:22:29

标签: python regex

例如,我有一个字符串:

The struct-of-application and struct-of-world

使用re.sub,它将替换匹配的预定义字符串。如何通过匹配内容的转换替换匹配?例如:

The [application_of_struct](http://application_of_struct) and [world-of-struct](http://world-of-struct)

如果我编写一个简单的正则表达式((\w+-)+\w+)并尝试使用re.sub,我似乎无法使用我匹配的内容作为替换的一部分,更不用说编辑匹配的内容了:< / p>

In [10]: p.sub('struct','The struct-of-application and struct-of-world')
Out[10]: 'The struct and struct'

2 个答案:

答案 0 :(得分:5)

使用function for the replacement

      <Button
        android:id="@+id/imageButtonLoginSelector"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@mipmap/icon_login_config"
        android:onClick="imageButtonLoginSelector"/>

答案 1 :(得分:1)

试试这个:

>>> p = re.compile(r"((\w+-)+\w+)")
>>> p.sub('[\\1](http://\\1)','The struct-of-application and struct-of-world')
'The [struct-of-application](http://struct-of-application) and [struct-of-world](http://struct-of-world)'