我遇到了一个正则表达式,其中必须在python中提取日夜数据限制。我需要提取的只是夜晚和日期的数据量,我的数据看起来像this
由于数据非常大,我想要两个正则表达式:
我为“day data”创建的是([0-9]+(\.[0-9][0-9]?)?\s?GB|[0-9]+(\.[0-9][0-9]?)?\s?MB).*\+
,我将在+之前捕获字符串,然后捕获python中的数据量。这对大多数数据都是正确的,但对所有数据都不正确。我希望捕获最大数据。
我想要两个RE来捕获前面有'day'和'night'的数据(可能还有char和no之间)。例如: 4gb日+ 3gb夜间数据
输出:
Day data limit Night Data Limit
4GB 3GB
答案 0 :(得分:0)
模式各不相同,但是从我设法发现的(不分析所有6K +行)开始,day
或night
通常在相应数量之后变为零到两个单词。只有在跟随其他模式后,您才可以使用正向前瞻来匹配模式。
因此,对于当天的数据,您最终可能
(?i)\d+(?:\.\d{1,2})?\s?[MG]B(?=\s+(?:\S+\s+){0,2}day\b)
演示:https://regex101.com/r/jdCtld/2
对于夜间数据,它几乎是一样的:
(?i)\d+(?:\.\d{1,2})?\s?[MG]B(?=\s+(?:\S+\s+){0,2}night\b)