У меня есть пользовательская форма, где я позволяю пользователю вводить дату. У меня есть функция, которая преобразует вход пользователя в метку времени. Но единственным форматом, который он может обрабатывать, является mm/dd/yyyy
. Итак, как я могу преобразовать любого из них:php regex modifying string
m/dd/yyyy,
m/d/yyyy,
mm/d/yyyy
with any separator might that be
(/,\,-,space)
в принятой маску моей функции в той мм/дд/гггг?
Сначала я пытался увидеть, если строка соответствует моему описанию:
preg_match_all("[0-9]{0,2}/[0-9]{0,2}/[0-9]{4}", $string,$matches);
Но всему это я получаю ошибка
(неизвестный модификатор "}"),
Кто-нибудь знает, что случилось? Это моя первая попытка с использованием регулярного выражения.
хотя ваше решение будет работать, ваши рассуждения совершенно неправильны: косые черты не являются метасимволами регулярных выражений, поэтому их нужно избегать, если в качестве разделителя регулярных выражений используются косые черты. но вы можете использовать практически любую пару символов, которые вы хотите использовать как разделители, даже метасимволы регулярных выражений, такие как '||', '[]', '{}', '@@' или даже 'aa'. – sgroves
Да «/» - не единственный, но самый распространенный разделитель, поэтому я его и использовал. Он используется на других языках с использованием PCRE. http://php.net/manual/en/regexp.reference.delimiters.php – rPawel
Я знаю это. ваш ответ по-прежнему неточный. OP не «нужно» делать одну из двух вещей, которые вы сказали, что им нужно делать, поэтому я прокомментировал. – sgroves