获取字符之间的字符串段

时间:2018-07-02 19:49:08

标签: regex python-3.x

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

我目前有以下代码段:

-Dspring.profiles.active=dev

这很好,所有内容都只在句点之前和之后返回4个字符。 在一段时期之后和下一个时期之前,我将如何抓取部分字符串。 最好不要使用常规编辑,因为它对于像我这样的简单人来说有点太复杂了。

例如: 一个字符串可能看起来像这样

export spring_profiles_active=dev

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

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

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

2 个答案:

答案 0 :(得分:1)

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

\.(\d+)\.

如果要匹配所有的点,则可以使用负字符类[^.]而不匹配点:

\.([^.]+)\.

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

Demo

答案 1 :(得分:0)

要在示例中匹配各个期间之间的数字,可以使用以下方法:

^.*\.[^.\s]*?\.?(\d+)\..*$

Here's an online example