Привет, я использую Laravel, и я хочу проверить создание регулярного выражения, которое позволит определенный формат для продолжительности (не время, поскольку это может превышать 24-часовой формат). так, например, 124 часа 30 минут и 24 секунды будут представлены следующим образом: 124: 30: 24. Но первое значение может быть более 1 символа и числа, второе значение должно быть двоеточием, третье значение должно быть 2 символа и числа, четвертое значение должно быть двоеточием, а пятое значение должно быть 2 символа и цифры.
Любые идеи, как я могу создать регулярное выражение, которое будет достигать этого, чтобы вставить в следующий массив?
$rules = array(
'duration' => 'required|regex:/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).+$/'
);
неверные примеры:
alphacharacters e.g. qwerty
0:0:0
0:
0
1
30:211:211
30:2111:2111
a:d:d
asd
действительные примеры:
01:00:00
1:00:00
30:21:21
330:21:21
1330:21:21
11330:21:21
basically any amount of hours.
Приведите ваши примеры, этого регулярного выражения должно хватить:
^\d+:\d{2}:\d{2}$
Демо-версия: https://regex101.com/r/kO4xN2/2
\d
это число
+
является квантификатором, означающим один или несколько предшествующих символов (или групп)
{}
допустимое количество символов (также можно указать диапазон)
^$
являются якорями, поэтому строка должна быть точно совпадающей, если в строке содержится больше содержимого, ее следует удалить.
Других решений пока нет …