Ну, у вас есть не совсем правильные части. Вместо [0-30-9]
я думаю, что вы имеете в виду [0-3][0-9]
, и аналогично для других чисел.
Тем не менее, обычно достаточно быть немного более свободным и просто использовать \d
, что эквивалентно [0-9]
.
Вы соединяете части один за другим:
/\d\d (MONTH) \d\d\d\d at \d\d:\d\d/
Что можно записать более кратко, как:
/\d\d (MONTH) \d{4} at \d\d:\d\d/
Или, если вам действительно нужно, чтобы он был более строгим, как в вашей формулировке:
/[0-3]\d (MONTH) [0-2]\d{3} at \d\d:\d\d/
Я оставил бит месяца последним, поскольку он более сложный. Снова вы можете быть свободным или строгим.
затягивая:
/[0-3]\d [A-Za-z]+ [0-2]\d{3} at \d\d:\d\d/
Для строгого соответствия мы можем использовать чередование, каждая альтернатива отделена '|' и список вариантов заключен в круглые скобки (хотя будьте осторожны, скобки также имеют другое дополнительное значение; не волнуйтесь, в этом случае это не помешает):
/[0-3]\d (January|February|March|April|May|June|July|August|September|October|November|December) [0-2]\d{3} at \d\d:\d\d/
Наконец, если день не дополняется 0 (то есть 1-й - просто «1», а не «01»), вам нужно сделать это необязательным:
/[0-3]?\d (January|February|March|April|May|June|July|August|September|October|November|December) [0-2]\d{3} at \d\d:\d\d/
Шпаргалка
- [] используются для создания класса символов, набора совпадающих символов
- \ d - это встроенный класс символов, эквивалентный [0-9]
- () используются для создания группы, полезной для определения чередования (среди прочего)
- | используется для создания чередования, списка альтернативных последовательностей символов, которые должны соответствовать
- {n} - модификатор, говорящий, что 'n' предыдущего символа или класса символов должно совпадать
- + - это модификатор, говорящий о том, что 1 или более предшествующего символа или класса символов должны совпадать
- ? является модификатором, говоря, что 0 или 1 предыдущего символа или класса символов должны совпадать