Regex. Нужна помощь с условием.
Здравствуйте!
У меня есть список таких строк: Код:
id:1111111111,first_name:Misha,last_name:Razlivakhin,sex:2,bdate:19.4 1. "sex:2" 2. И дату рождения такого плана: если указан год, то берем строку только в том случае, если это 1985-1997. Если год не указан - тоже берем. Все отстальное отбрасываем. У меня получилась такая регулярка: [0-9]{1,40},first_name:.*,last_name:.[^,]*,sex:2,bdate:[0-9]{1,2}\.[0-9]{1,2}(\.(1985|1986|1987|1988|1989|1990|1991|1992|1993|1994|1995|1996|1997))? Она работает почти правильно. Захватывает лишние 2 строки с годами 1984 и 1980. Я так понимаю, что после bdate:[0-9]{1,2}\.[0-9]{1,2} нужно сделать условие, что если есть точка -> проверяем год -> если все ок, то берем. Если нет точки -> то просто берем. Но у меня что-то не выходит. Помогите, пожалуйста. Заранее благодарю! |
Если я правильно понял, то:
/[0-9]{1,40},first_name:.*,last_name:.[^,]*,sex:2,bdate:[0-9]{1,2}\.[0-9]{1,2}(,|$|\.(1985|1986|1987|1988|1989|1990|1991|1992|1993|1994|1995|1996|1997))/ |
Часовой пояс GMT +3, время: 18:41. |