Регулярные выражения [вопрос]

pastuhoff
На сайте с 29.10.2005
Offline
229
450

Подскажите, плз, как можно из данных вида

created: 2005.07.06

paid-till: 2012.07.06

free-date: 2012.08.06

получить

2012.08.06

Но если поля "free-date" нету, тогда получить данные из "paid-till"

2012.07.06

Это нужно сделать в одном регулярном выражении.

Коллекционер доменных имен.
N
На сайте с 28.03.2009
Offline
39
#1

~(?<=free-date:|paid-till:) *[0-9]{4}\.(?:[0-9]{2}\.?){2}(?!\s*free-date)~i
pastuhoff
На сайте с 29.10.2005
Offline
229
#2

Nexter, спасибо. А если вместо негативной опережающей проверки использовать условный выбор - быстрее не будет (вот его описывать я не умею)?

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#3
быстрее не будет

Не будет. Сейчас битва идёт на 0,00001 секунды. Так что для человека это происходит мгновенно.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий