如何在字符之间获取字符串段?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (38)

我有一个巨大的数据集,其中包含许多文件名,包含我需要抓取的各种字符串部分。

我目前有这个代码段:

def fps(data):
for i in data:
    pattern = r'.(\d{4}).' # finds data in between the periods
    frames = re.findall(pattern, ' '.join(data)) #puts info into frames list
    frames.sort()
for i in range(len(frames)): #Turns the str into integers
    frames[i] = int(frames[i])
return frames

这很棒,除了它只会在一段时间之后和之前返回4个字符。如何在一段时间之后和下一个时期之前抓住部分字符串。最好不要使用常规编辑,因为对于像我这样的傻瓜而言,这有点过于复杂。

例如:一个字符串可能如下所示

string = ['filename.0530.extension']

而其他人可能看起来像这样

string2 = ['filename.042.extension']
string3 = [filename.045363.extension']

我需要在终端上的句点之间输出数字,所以:0530,042,045363

提问于
用户回答回答于

为了匹配你的示例数据,可以匹配一个点,在一个组中捕获一个或多个数字\d+(而不是正好4个\d{4}),然后匹配一个点:

\.(\d+)\.

如果要匹配点之间的所有点,可以使用否定字符类[^.]来匹配不是点:

\.([^.]+)\.

请注意,如果要匹配文字点,则应该将其转义\.

用户回答回答于

所属标签

可能回答问题的人

  • 天使的炫翼

    15 粉丝531 提问35 回答
  • 旺仔小小鹿

    社区 · 运营 (已认证)

    48 粉丝0 提问27 回答
  • 富有想象力的人

    2 粉丝0 提问26 回答
  • 发条丶魔灵1

    6 粉丝525 提问25 回答

扫码关注云+社区

领取腾讯云代金券