gpt4 book ai didi

python - 使用正则表达式删除字符串中间的前导零

转载 作者:太空宇宙 更新时间:2023-11-03 12:45:04 26 4
gpt4 key购买 nike

我有大量 YYYYYYYXXXXXXXXZZZZZZZZ 格式的字符串,其中 X、Y 和 Z 是固定长度的八位数字。现在,问题是我需要解析中间的整数序列并删除所有前导零。不幸的是,确定三个序列中每一个的开始/结束位置的唯一方法是计算数字的数量。

我目前分两步进行,即:

m = re.match(
r"(?P<first_sequence>\d{8})"
r"(?P<second_sequence>\d{8})"
r"(?P<third_sequence>\d{8})",
string)
second_secquence = m.group(2)
second_secquence.lstrip(0)

哪个有效,并给我正确的结果,例如:

112233441234567855667788 --> 12345678
112233440012345655667788 --> 123456
112233001234567855667788 --> 12345678
112233000012345655667788 --> 123456

但是有没有更好的方法呢?是否可以编写一个匹配第二个序列的正则表达式,没有前导零?

我想我正在寻找一个执行以下操作的正则表达式:

  1. 跳过前八位数字。
  2. 跳过任何前导零。
  3. 捕获之后的所有内容,直到后面有 16 个字符/前面有 8 个字符。

如前所述,上述解决方案确实有效,因此此问题的目的更多是提高我对正则表达式的了解。我很感激任何指点。

最佳答案

这是典型的“无用正则表达式”。

您的字符串是固定长度的。将它们剪到合适的位置即可。

s = "112233440012345655667788"
int(s[8:16])
# -> 123456

关于python - 使用正则表达式删除字符串中间的前导零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41019185/

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