#regex
Вопрос:
Мне нужно извлечь выделенный номер из этих двух строк.
- Уважаемый IBBL CH Приобрел
10.00
BDT по адресу grameenphone.com, BD 05.09.21 20:06 Карта ***9793 Avl Бал: 930,53 BDT Помощь:16259 Получите скидку 10% от DARAZ *Tamp;C - TK
20,312.84
был возвращен на ваш A/C **04994509 в 10/01/21 03:27 вечера для перевода NPSB: 71210110003106, Баланс:21 019,50. Справка:16259,8331090 — IBBL iBanking
Я пробовал (?<=tk )(. d)
и для первого, и d. (?=bdt)
для второго, но ничего не вышло.
Комментарии:
1. Попробуйте
d (?:[.,]d )*(?=s*BDT)|(?<=TKs)d (?:[.,]d )*
, если вы используете шаблон в среде, которая выбирает первое совпадение. Смотрите эту демонстрацию регулярных выражений.2. Да, я просто сопоставляю первый случай, и это работает. Спасибо 🙂
Ответ №1:
Вы можете использовать
d (?:[.,]d )*(?=s*BDT)|(?<=TKs)d (?:[.,]d )*
Смотрите демонстрацию регулярных выражений. Подробные сведения:
d
— одна или несколько цифр(?:[.,]d )*
— ноль или более вхождений точки или запятой, а затем одной или нескольких цифр(?=s*BDT)
— место, за которым сразу следует ноль или более пробелов, а затемBDT
|
— или(?<=TKs)
— место, непосредственно предшествующееTK
пробелу и пробелуd (?:[.,]d )*
— одна или несколько цифр, а затем ноль или более вхождений точки или запятой, а затем одна или несколько цифр