为什么我的PHP正则表达式都失败了?

Phi*_*ord 1 php regex

$subject = "SPRINT-1.csv";
$pattern = '/^[a-zA-Z]\-[0-9]\.(csv)+$/';
if(preg_match($pattern, $subject)) {
 echo "Match";
} else {
 echo "NOPE";
}
Run Code Online (Sandbox Code Playgroud)

要么

$subject = "SPRINT-1.csv";
$pattern = '/^\w\-\.(csv)+$/';
if(preg_match($pattern, $subject)) {
 echo "Match";
} else {
 echo "NOPE";
}
Run Code Online (Sandbox Code Playgroud)

Gum*_*mbo 5

字符类[…]仅描述一个单个字符.因此[a-zA-Z]描述了a- z,A- 中的一个字符Z.这同样适用于\w(也是一个字符类).

您忘记描述可能出现的字符类中的字符数量,例如:

  • ?:零或一次重复
  • *:零次或多次重复
  • +:一次或多次重复