Как указать строку в регулярном выражении?

Например, есть текст:

|*Some Text1*|100
|*Some Text2*|200
|*Some Text3*|300

Как указать в регулярке, что мне нужно взять из первой строки число 100, или например из второй строки число 200 и из третей число 300? То есть все сразу значения после текста мне не нужны, но мне нужно три регулярки, которые в каждом случае возвращают именно число после символа | из строки 1 или строки 2 или из строки 3.


Ответы (1 шт):

Автор решения: nomnoms12

Вам может помочь следующее регулярное выражение: ^\|[^|]*\|(\d+).

Конструкция Значение
^ Начало строки
\| Символ | (его нужно экранировать)
[^|]* 0 или более повторений любого символа, кроме |
\d+ 1 или более повторений цифры

Группа для выбора указывается в круглых скобках: (\d+).


import re

regex = re.compile(r'^\|[^|]*\|(\d+)')

num1 = regex.findall('|*Some Text1*|100')[0]  # 100
num2 = regex.findall('|*Some Text2*|200')[0]  # 200
num3 = regex.findall('|*Some Text3*|300')[0]  # 300
→ Ссылка