how to check this special strings
I have a special strings to check with a PHP script. This is the format :
XX - XX:XX:XX - Somethings
such as :
- each XX must be
??
or a pair of digit; - first XX can take every kind of digit;
- second XX must be from 00 and 10;
- third and 开发者_开发知识库fourth XX must be from 00 to 59;
- somethings can be everything, it doesnt matter;
These are some example :
00 - ??:??:?? - Blablabla // OK
99 - ??:99:?? - Blablabla // NO (99 is too high)
99 - 12:50:40 - Blablabla // NO (12 is too high)
?? - AA:50:40 - Blablabla // NO (AA is not a pair of digit)
99 - 2:50:40 - Blablabla // NO (2 is not a pair of digit; I need 02)
99 -08:49:40 - Blablabla // NO (-08 need a space)
How can I do it? I think the best way is Regex, but I really don't know how to do it :) Any help is appreciated
You can do it like this
$subj = '00 - 04:38:27 - Hi';
preg_match('/^(\?\?|\d\d) - (\?\?|10|0\d):(\?\?|[0-5]\d):(\?\?|[0-5]\d) - (.*)/', $subj, $matches);
Then you can access the fields in matches:
$matches[1] = 00
$matches[2] = 04
$matches[3] = 38
$matches[4] = 27
$matches[5] = Hi
This seems to do the job (tested at http://www.spaweditor.com/scripts/regex/index.php)
/([0-9\?]{2} - (0[0-9]|10|\?\?):([0-5][0-9]|\?\?):([0-5][0-9]|\?\?) - .*)/
精彩评论