如何在Python中使用正则表达式从逗号分隔的数字字符串中找到下一个匹配数字的数字?

时间:2019-06-24 11:43:50

标签: python regex

假设我有一串用逗号分隔的数字,并且我想找出下一个与之匹配的数字,所以我使用这种逻辑,将字符串覆盖在list中。

import json

s = '1,5,8,11,22,25'

def get_next(number):
    clean_s = f'[{s}]'
    number_list = json.loads(clean_s)
    input_number_index = number_list.index(number)
    return number_list[input_number_index + 1] # return next number

print(get_next(5)) # will print 8
print(get_next(11)) # will print 22
print(get_next(22)) # will print 25
print(get_next(1)) # will print 5

如何使用python regular expression解决此问题?

1 个答案:

答案 0 :(得分:1)

这应该有所帮助。

例如:

import re

def get_next(number):
    m = re.search(r"(?<={},)(\d+),?".format(number), '1,5,8,11,22,25')
    if m:
        return m.group(1)
    return "N\A"

print(get_next(5)) # will print 8
print(get_next(11)) # will print 22
print(get_next(22)) # will print 25
print(get_next(1)) # will print 5
print(get_next(25)) # will print N\A