Как я могу использовать регулярное выражение для извлечения чисел до и после символа? например, 5x5 или 12x5 - Python [закрыто]

Используйте команды zip и iter вместе:

zip(*[iter(l)]*2)

, которые я нашел в документации Pipon 3 zip :

l = [1,2,3,4,5,6]

for i,j in zip(*[iter(l)]*2):
    print("{}+{}={}".format(str(i),str(j),str(i+j)))

, что приводит к:

1+2=3
3+4=7
5+6=11

-1
задан Liam 16 January 2019 в 15:33
поделиться

4 ответа

Попробуй так:

import re

string = "10x3" 
regexp = r"(\d+)x(\d+)"
regexmatch = re.match(regexp, string)

if regexmatch is not None:
    print("TRUE")
    print(re.search(regexp, string).groups())
    lower = regexmatch.group(1)
    upper = regexmatch.group(2)
    print("LOWER : " + str(lower))
    print("UPPER : " + str(upper))
else:
    print("FALSE")
0
ответ дан Phx Dev 16 January 2019 в 15:33
поделиться

Вы можете попробовать использовать разбиение строки на каждом x в строке. Или используя регулярное выражение, как один из других упомянутых ответов.

expression = "12x10x20x45x50x45"
numbers = expression.split('x')
print(numbers)

Пример вывода
['12', '10', '20', '45', '50', '50']

0
ответ дан r1024 16 January 2019 в 15:33
поделиться

Вы можете использовать x в качестве разделителя для разделения строк, а затем сопоставить строки с типом int

number = "12x10"
lower, upper = list(map(int, number.split('x')))
# 12, 10

number = "3x3"
lower, upper = list(map(int, number.split('x')))
# 3, 3
0
ответ дан Sheldore 16 January 2019 в 15:33
поделиться

Возможно, один чистый способ

t = number.split('x')
x, y = int(t[0]), int(t[2])
0
ответ дан ApprenticeHacker 16 January 2019 в 15:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: