0

我在创建将修复有效字符串的正则表达式时遇到问题。

该字符串将采用以下格式:任何字母数字字符 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。

我尝试了几种不同的表达方式,但如果我有一个无效的条目,似乎没有一个匹配。我知道我可以分解字符串并循环遍历数组,但是尝试仅在一个表达式中执行此操作,因为这似乎很简单,但无法完全弄清楚。

示例模式:

echo preg_match("/^([A-Z0-9]{3,5})[,|$]{1,}/",$str);
echo preg_match("/((?<=[^|,])([A-Z0-9]{3,5}){1}(?=[,|$])){1,}/",$str);

以及它们的各种变体,但我找不到获胜的模式,感谢所有帮助。

干杯,心理学

4

4 回答 4

3
/^[A-Z0-9]{3,5}(?:,[A-Z0-9]{3,5})*$/
于 2010-02-17T15:23:09.580 回答
2
/^([a-z0-9]{3,5},)*[a-z0-9]{3,5}$/
于 2010-02-17T15:23:25.523 回答
1

这对我有用:

(\w{3,5})[,.]?
于 2010-02-17T15:25:49.027 回答
-1

尝试:

echo preg_match("/^([A-Z0-9]{3,5}(?:,|$))+/",$str);
于 2010-02-17T15:23:38.423 回答