Как получить число 10 из вышеприведенной строки?Я хочу перехватить три-четыре слова после ключевого слова и получить целочисленное значение
Итак, я понимаю, что вы ожидаете получить три-четыре слова после ключевого слова (= of ten percent
) и целое число (= 10
).Я предполагаю, что «ключевое слово» - это interest at the rate
, именно то, что вы использовали в шаблоне.
Затем вы можете использовать
import re
s = "interest at the rate of ten percent (10%)"
r = re.compile(r'interest at the rate (\w+(?:\s+\w+){2,3})\s*\((\d+)')
print(r.findall(s))
# => [('of ten percent', '10')]
См. Python demo .
Подробности
interest at the rate
- ключевое слово (\w+(?:\s+\w+){2,3})
- Группа 1: один или несколько символов слова, а затем 2 или3 последовательности из 1+ пробелов, за которыми следуют 1+ слов: \s*
- 0+ пробелов \(
- (
(\d+)
- группа2: одна или несколько цифр.
Если количество слов может быть больше 2 или 3 или может быть 1 или 0, замените {2,3}
на *
.
Если число тоже может быть числом с плавающей запятой, замените \d+
на \d[\d.]*
.