我希望使用preg_match_all()
抓住的格式:
到目前为止我的正则表达式:
/((\d{1,2}|\d{4})(.\d{1,2}))(am|pm)*/i
任何帮助都非常感激,我似乎无法抓住5& 6与当前的正则表达式。
答案 0 :(得分:2)
您可以使用此正则表达式:
/\b(\d{1,2})([.:]?\d{1,2})?([ap]m)?\b/i
正则表达式的分解:
\b # word boundary
\d{1,2} # match 1 or 2 digits for hours
[.:]? # match *optional* dot or colon i.e. minute separator
\d{1,2} # match 1 or 2 digits for minutes
([ap]m)? # match *optional* am/pm
\b # word boundary
答案 1 :(得分:1)
怎么样:
/^(\d{1,2})([.:]?\d{1,2})?(am|pm)?$/i
<强>解释强>
/ : regex delimiter
^ : begining of string
( : capture group 1
\d{1,2} : one or two digit
) : end group 1
( : capture group 2
[.:]? : optional . or :
\d{1,2} : one or two digit
), : end group 2 otional
(am|pm)? : am or pm optional
$ : end of string
/i : regex delimiter with caseinsensitive flag