我在Regex方面真的很空,这就是为什么无法在PHP中创建一个Regex来检查字符串是否具有这个特定的字符序列。
$str = '2323,321,329,34938,23123,54545,123123,312312';
检查字符串是否仅包含以逗号(,)分隔的整数(不是十进制,没有alphabats或其他任何东西)的方法。
答案 0 :(得分:9)
您可以使用此正则表达式:
'/^\d+(?:,\d+)*$/'
<强>代码:强>
$re = '/^\d+(?:,\d+)*$/';
$str = '2323,321,329,34938,23123,54545,123123,312312';
if ( preg_match($re, $str) )
echo "correct format";
else
echo "incorrect format";
答案 1 :(得分:3)
只是为了没有正则表达式的乐趣:
var_dump(
!array_diff($a = explode(',', $str), array_map('intval', $a))
);
答案 2 :(得分:0)
如果您不关心格式,那么您只需检查字符:
$regex = '/^[0-9,]+$/';
if (preg_match($regex, $str) === 1) {
echo 'Matches!';
}
您也可以不使用正则表达式来执行此操作:
$str = str_replace(',', '', $str);
if (ctype_digit($str)) {
echo 'Matches!';
}
如果您关心格式,那么这样的事情就可以了:
$regex = '/^[0-9]+(?:,[0-9]+)*$/';
if (preg_match($regex, $str) === 1) {
echo 'Matches!';
}