字母数字字符的正则表达式

时间:2012-02-21 11:10:10

标签: php regex

需要正则表达式,它可以匹配像"1B7FL26X3WS731388"这样的字符串。字母数字17个字符长度。

我正在使用这个表达。

$rEX    =  '/([A-Z0-9]){17}/';

但它也会从像"FGD798791B7FL26X3WS731388POPOD";

这样的字符串中返回一部分

我需要选择一个长度正好为17个字符的字符串。第18个字符不应该是字母数字。

6 个答案:

答案 0 :(得分:2)

添加开始和结束您的模式:

$rEX = '/^([A-Z0-9]){17}$/D';

答案 1 :(得分:1)

你应该使用^ $ delimiters

$ rEX ='/ ^([A-Z0-9]){17} $ /';

仅允许使用大写字母数字17长度字符串

正则表达式将允许包含SUBSTRING的大写字母数字17长度字符串的所有字符串。

答案 2 :(得分:0)

$rEX = '/[^A-Z0-9]([A-Z0-9]){17}[^A-Z0-9]/';应该这样做。 [^...]否定了角色等级。

答案 3 :(得分:0)

$rEX = '/[^A-Z0-9]+([A-Z0-9]){17}[^A-Z0-9]+/';

答案 4 :(得分:0)

这样做

^([a-zA-Z0-9]){17}([^a-zA-Z0-9])*$

答案 5 :(得分:-1)

试试这个......

<?php
$title='1B7FL26X3WS731388';
$result = preg_replace("/[^a-zA-Z0-9]/", "", $title);
echo strlen($result);
?>