python - 如何在 re.sub 中索引组元素?

标签 python regex

如何从 re.sub 匹配中索引匹配组中的字符。

所以我正在尝试这样做:

import re
string_test = "this.day"
string_test = re.sub("^(.*?)\.(.*?)", "\g<1>[0].\g<2>", string_test)

我的结果应该是:"t.day" 。是否有可能以某种方式索引 \g<1> re.sub 内的组?显然\g<1>[0]不起作用。

最佳答案

除非使用 lambda 函数,否则无法像上面那样进行索引。只需更改您的正则表达式,如下所示。

string_test = re.sub("^(.)[^.]*\.(.*)", r"\g<1>.\g<2>", string_test)

>>> import re
>>> string_test = "this.day"
>>> re.sub(r"^(.)[^.]*\.(.*)", r"\1.\2", string_test)
't.day'

如果你真的想建立索引,

>>> re.sub(r"^(.*?)\.(.*)", lambda m: m.group(1)[0] + '.' + m.group(2), string_test)
't.day'
>>> re.sub(r"^(.*?)(\..*)", lambda m: m.group(1)[0] + m.group(2), string_test)
't.day'

关于python - 如何在 re.sub 中索引组元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32964986/

相关文章:

python - 将非连续值分组到列表中

python - 矩阵类定义

javascript - 如何在 RegExp javascript 中添加 [](方括号)?

python - python中获取以下模式字符串的方法

c - IPv6 地址的正则表达式

python - 正则表达式使用monthly.out进行用户统计

Python 视频卡顿

python - 修补 python 对象以将默认值添加到方法 kwargs

python - 如何根据子选择获取数据帧索引

java - 摩擦正则表达式 : matching a char except when after by another char