PHP中的正则表达式,看起来像ABC-1234

时间:2018-07-06 14:34:48

标签: php regex

我正在尝试创建一个正则表达式来验证.csv文件的第一列,该列必须允许3-5个字母字符,一个连字符和一个数值E,g。 ABCD-123,EFG-4或HIJKL-5678在PHP中。

下面是我需要在其中应用该正则表达式的源代码。

<?php
 $allowedColums = 3;
 //Open the file.
 $fileHandle = fopen("names.csv", "r");
 //Loop through the CSV rows.
 while (($row = fgetcsv($fileHandle, 0, ",")) !== FALSE) {
     //Dump out the row for the sake of clarity.
     $numcols = count($row);
     if ($numcols != $allowedColums){
         break;
     }
     echo " $row[0] ";
     $fisrtColumn = $row[0];
     $secondColumn = $row[1];
     $thirdColumn = $row[2];
     var_dump($row); 
 }

 fclose($fileHandle);
?>

2 个答案:

答案 0 :(得分:2)

^[A-Z]{3,5}-\d+$

说明:

  1. ^匹配字符串的开头
  2. [A-Z]匹配任何大写字母。没有指定,但所有示例均大写。如果大小写无关紧要,则可以执行[a-zA-Z]
  3. {3,5}与上一个令牌([A-Z])匹配至少3次,最多5次。
  4. --字符匹配。
  5. \d+匹配一个或多个数字
  6. $匹配字符串的结尾

答案 1 :(得分:0)

这个怎么样?

[A-Z]{3,5}-\d+

如果字符串必须以这种用法开头

^[A-Z]{3,5}-\d+