Как вы можете захватить это с помощью регулярных выражений? - PullRequest
0 голосов
/ 01 февраля 2011

Я пытаюсь запечатлеть условные годы в RegEx. По сути, если они реализуют только двухзначный год, я хочу сделать его четырехзначным Так что, если они ставят:

1/2/08

Я хочу сделать это:

1/2/2008

Есть идеи?

Ответы [ 3 ]

3 голосов
/ 01 февраля 2011

Один [довольно неприятный] способ с использованием регулярных выражений:

"1/2/08".sub! /\/(\d{2})$/, '/20\1'

Не лучше ли разобрать строку в объекте даты? Тогда вы можете относиться к нему как к дате! :)

1 голос
/ 01 февраля 2011

Вы можете разделить на '/', и если последний компонент имеет длину два, вам нужно добавить 20, а затем снова собрать дату.

0 голосов
/ 01 февраля 2011

Вы можете разбить строку, используя

(.*/)(..)$

, а затем заменить что-то вроде

$120$2

чтобы собрать строку обратно (проверено с http://www.regexplanet.com/simple/).

Возможно, вам придется подумать о том, что вы хотите сделать для дат в 20-м веке - этот подход будет распознавать 21/01/98 как 21/01/2098, что может быть не тем, что вы хотите ... Может быть, лучше чтобы правильно разобрать строку, а не просто слепо ее отредактировать!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...