regex - 获取字符之间的字符串段
问题描述
我有一个巨大的数据集,其中包含许多文件名以及我需要抓取的字符串的各个部分。
我目前有这个代码段:
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}
),然后匹配一个点:
如果要匹配点之间的所有点,可以使用否定字符类[^.]
来匹配点:
请注意,如果要匹配文字点,则应将其转义\.
推荐阅读
- python - 电报机器人创建调查(民意调查)
- php - 在产品名称旁边发送支付网关 woocommerce 产品描述
- javascript - 基于输入术语的文本突出显示异常
- jquery - 使用 Ajax 获取 Bootstrap 弹出框内容的最佳方法是什么?
- javascript - ajax请求时闪烁和淡出元素
- python - 如何在python中使用条件填充空行中的值
- reactjs - 在另一个组件内部渲染的反应路线
- facebook - 使用 Spark AR 中的最后一个旋转值在 XYZ 上旋转对象
- itk - itk::BinaryFillholeImageFilter 确实填充了二进制 itk::Image 中的孔
- python - 我的图表在背景中没有完全显示 x 轴和网格(Matplotlib/Python)