Предположим, у меня есть строка чисел, разделенных запятыми, и я хочу узнать следующее число совпадающих чисел, поэтому я использую эту логику, используя покрывающую строку в 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
Как я решу эту проблему, используя регулярное выражение питона?
Это должно помочь.
Бывший:
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
Запятая была частью предпросмотра, и это тоже лишнее. Я думаю, что все, что вам действительно нужно, это r"(?< = {},)(\d+)"
. Я не знаю, кто проголосовал за вас, но я компенсирую это, проголосовав за вас.
Красиво, но предвидение лишнее.