我正在尝试使用replace修改我的正则表达式。最终要做的是在现有模式的前面添加 01 / 。 这是我在用replace做的事情:
df['found_d'].str.replace(pattern2, '1/'+pattern2)
#must be str, not _sre.SRE_Pattern
我想使用 sub ,它需要3个参数,目前我不太确定如何使用它。 这是预期的输入:
df['found_d']= 01/07/91 or 01/07/1991
我需要在模式中添加一个缺少的日期。
答案 0 :(得分:0)
从版本0.20开始,熊猫str.replace
可以接受将收到匹配对象的可调用对象。例如,如果一列的模式为2个大写字母,后跟2个十进制数字,并且您想用冒号将它们反转,则可以使用:
df['col'] = df['col'].str.replace(r'([A-Z]{2})([0-9]{2})',
lamdba m: "{}:{}".format(m.group(2), m.group(1)))
它为您提供了熊猫内部re
模块的全部功能,在这里'AB12'
用'12:AB'
答案 1 :(得分:0)
不需要可调用对象,short_name = serializers.SerializerMethodField()
[...]
def get_short_name(self, obj):
return obj.library_book_relation
提供了专用的方法来在替换期间访问匹配的文本。
为了将文字re
附加到模式匹配项,请在替换模式中对整个模式使用01/
明确的反向引用,而不要使用正则表达式模式:
\g<0>