gpt4 book ai didi

python - 在 Python 中添加字母数字中的正则表达式

转载 作者:行者123 更新时间:2023-12-01 00:05:57 25 4
gpt4 key购买 nike

如何使用 Python 中的正则表达式在字母数字字符串中添加三位数字?

例如,我想在破折号 - 之后添加三个零,但在字符串中的最后一个数字之前,以制作 A1-1 的方式是A1-0001相反。

我的猜测是:

df['column'].str.replace('(^C3-\d{1)$)', ???)

最佳答案

您可以使用

df['column'] = df['column'].str.replace(r'^(C3-)(\d)$', r'\g<1>000\2')

请参阅regex demo 。如果C可以是任何大写 ASCII 字母,将其替换为 [A-Z] .

或者,对于 1-3 位数字来说更通用一些:

df['column'] = df['column'].str.replace(r'^(C3-)(\d{1,3})$', lambda x: "{}{}".format(x.group(1), x.group(2).zfill(4))) 

详细信息

  • ^ - 开始
  • (C3-) - 第 1 组:C3-
  • (\d) - 第 2 组:一个数字(\d{1,3} 匹配 1 到 3 个数字)
  • $ - 字符串结尾
  • \g<1> - 第 1 组的值
  • 000 - 三个零
  • \2 - 第 2 组的值

Python 测试:

import pandas as pd
df = pd.DataFrame({'column': ['C3-1', 'C3-12', 'C3-123', 'C3-1234']})
df['column'] = df['column'].str.replace(r'^(C3-)(\d{1,3})$', lambda x: "{}{}".format(x.group(1), x.group(2).zfill(4)))

输出:

>>> df
column
0 C3-0001
1 C3-0012
2 C3-0123
3 C3-1234

关于python - 在 Python 中添加字母数字中的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59976183/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com