#libreoffice-calc
#libreoffice-calc
Вопрос:
Как получить второе совпадение РЕГУЛЯРНОГО выражения? Например:
A1: 11:33
=REGEX(A1;"d{2}")
— получает 11, но я хочу 33!
Ответ №1:
Вы можете попытаться записать вторую пару цифр (ту, что после первой) и заменить все записанным значением.
=REGEX(A1,"^.*?d{2}.*?(d{2}).*$","$1")
Редактировать:
Из вашего комментария к другому ответу кажется, что у вас нет строки, но время. В этом случае regex — неправильный инструмент. Просто используйте MINUTE()
для извлечения минутной части времени:
=MINUTE(A1)
Комментарии:
1. @FreeStyler: Какая у тебя версия? Я протестировал его с 6.4.4.2 (x64) в Windows, и там он отлично работает.
2. @FreeStyler: Также смотрите правку. У вас, вероятно, есть время, а не строка?
3. Спасибо!
=HOUR(A1) 4 amp; ":" amp; MINUTE(A1)
работает для меня! Также моя версия LOC 7.0.0.3 x644. @FreeStyler: Если вы просто хотите добавить 4 часа, вы можете использовать
=A1 TIME(4,0,0)
, это кажется проще.
Ответ №2:
Ответ зависит от диапазона возможных входных значений. Вам всегда нужны последние два числовых символа содержимого ячейки (абзаца)? Если да, то вы могли бы добавить $
, чтобы регулярное выражение соответствовало только содержимому в конце абзаца (см. Документацию):
=REGEX(A1;"d{2}$")
Смотрите следующий пример (A1= '11:33
; A2 содержит формулу, показанную в A3 (с использованием функции FORMULA())).