我需要使用preg_match()
验证输入模式,以便模式类似于" anyname1,anyname2,anyname3,"。
请注意,最后还有一个逗号。任何字母或数字在逗号之间有效,数字不必出现在最后。例如" nam1e,Na2me,NNm22,"已验证。
我尝试了^([A-Za-z0-9] *, *)*[A-Za-z0-9]$
但没有工作。我也经历过其他帖子,但没有得到完美答案。
有人可以给我一个答案吗?
答案 0 :(得分:2)
听起来你想验证该字符串是否包含一系列逗号分隔的字母数字子字符串,并带有可选的尾随逗号。
在这种情况下,这应该达到你想要的效果。
$str = "anyname1,anyname2,anyname3,";
$re = '~^([a-z0-9]+,)+$~i';
if (preg_match($re, $str)) {
// String matches the pattern!
}
else {
// Nope!
}
如果存储在$str
中的值包含示例中的尾随空格,并且您不想对该值使用trim(),则以下正则表达式将允许{{{}处的空格。 1}}:
$str
答案 1 :(得分:1)
为什么要使用如此复杂的解决方案解决一个简单的问题?您可以分两步完成相同的操作:
1:修剪空格,换行符,换行符和逗号:
$line = trim($line," \r\n,");
2:在逗号上爆炸以查看所有名称:
$array = explode(',',$line);
你没有告诉我们你将要使用它,所以我不知道你真正需要哪种格式。但我的观点是,你不需要复杂的字符串函数来完成简单的任务。
答案 2 :(得分:1)
答案 3 :(得分:0)