我在创建正则表达式时遇到问题,该表达式将修复有效的字符串。
字符串的格式为: 任何字母数字字符3到5次, 如果之后有更多字符,则后跟逗号 否则它是字符串的结尾
示例字符串: A401,CR56,4U9Y,MO16,ECZGB,A7DC,9LN5,D52PU,UT95,YBPB0,2JWA,AAMW,KVG,6V8W,FWE
TRIR,J107,Q9X,FMFZ,VDAS,557,X7A,DRPB,S97O,8U62B,IN3I,H8MC,WS4C,U04KQ,X05O。
我尝试了一些不同的表达式,但如果我的条目无效,则似乎没有任何表达式匹配。我知道我可以爆炸字符串,并循环遍历数组,但尝试只在一个表达式中执行此操作,因为它看起来很简单,但无法弄明白。
Exmaple模式:
echo preg_match("/^([A-Z0-9]{3,5})[,|$]{1,}/",$str);
echo preg_match("/((?<=[^|,])([A-Z0-9]{3,5}){1}(?=[,|$])){1,}/",$str);
以及它们的各种变化,但我无法找到获胜的模式,所有帮助都很受欢迎。
干杯, PSY
答案 0 :(得分:2)
/^[A-Z0-9]{3,5}(?:,[A-Z0-9]{3,5})*$/
答案 1 :(得分:2)
/^([a-z0-9]{3,5},)*[a-z0-9]{3,5}$/
答案 2 :(得分:0)
这对我有用:
(\w{3,5})[,.]?
答案 3 :(得分:-1)
尝试:
echo preg_match("/^([A-Z0-9]{3,5}(?:,|$))+/",$str);