早教吧 育儿知识 作业答案 考试题库 百科 知识分享

大侠帮我写个车牌的PHP正则表达式分别列出"京AAAAA"(AAAA表示相同的数字)"京AABBB"(ABBB表示后三位相同)"京AAABB""京AAAAB"我写了半天都是显示不出来车牌.

题目详情
大侠帮我写个车牌的PHP正则表达式
分别列出
"京A AAAA" (AAAA表示相同的数字)
"京A ABBB" (ABBB表示后三位相同)
"京A AABB"
"京A AAAB"
我写了半天都是显示不出来车牌.
▼优质解答
答案和解析
$p="你好京A 111145423\nsadjadm,n京A 1222他粤A 5666 京A 7222 \n京A 1122 京A 7788\n京A 2221京A 9998狗狗";
echo '后4位相同';
preg_match_all('/.{2}[A-Z]\s(\d)\1{3}/m',$p,$m);
var_dump($m[0]);
echo '后3位相同';
preg_match_all('/.{2}[A-Z]\s(\d)(?!\1)(\d)\2{2}/m',$p,$m);
var_dump($m[0]);
echo '前2位后2位相同';
preg_match_all('/.{2}[A-Z]\s(\d)\1(?!\1)(\d)\2/m',$p,$m);
var_dump($m[0]);
echo '前3位相同';
preg_match_all('/.{2}[A-Z]\s(\d)\1{2}(?!\1)\d/m',$p,$m);
var_dump($m[0]);
=====================
输出
后4位相同
array
0 => string '京A 1111' (length=8)
后3位相同
array
0 => string '京A 1222' (length=8)
1 => string '粤A 5666' (length=8)
2 => string '京A 7222' (length=8)
前2位后2位相同
array
0 => string '京A 1122' (length=8)
1 => string '京A 7788' (length=8)
前3位相同
array
0 => string '京A 2221' (length=8)
1 => string '京A 9998' (length=8)
符合题意
====
注1:代码按GB2312/GBK中文编码下写的,UTF8要稍加改动
注2:民用车牌后一般是5位数字,但按题目给出的4位数字写的。遇到5位无效,责任在出题不严谨