Preg_match() 与“{}”和“?”的用法
Preg_match() usage with "{}" and "?"
我目前正在尝试雷鬼音乐 (PCRE) 和 PhP。
函数 pre_match() 似乎无法正常使用符号 {} 和 ?我想知道为什么。有人能帮我吗?
这是我仅用于示例的代码:
<?php
$search = "aaaah";
//Return "valid" while I ask for 3 "a" specifically
if(preg_match("&a{3}&", $search)){
echo 'Valid <br/>';
}else{
echo 'Invalid <br/>';
}
//Also return "valid" while I ask for 0 or 1 "a"
if(preg_match("&a?&", $search)){
echo 'Valid <br/>';
}else{
echo 'Invalid <br/>';
}
?>
一定是我理解错了什么。有人可以解释吗?我在任何地方都找不到任何东西。先感谢您!
我正在使用带有 Mac 的 MAMP 并使用 utf-8 编码。
您得到的预期结果为:
- 您连续要求 3 个
a
,在您的示例中有两个可能的系列,前 3 个 a
和后 3 个 a
的。所以这是一场比赛,因为您没有指定在您的 3 a
系列之前或之后必须发生的事情。
- 您要求一个可选的
a
字符。任何输入都将与您正在寻找 0 或 1 a 的内容相匹配,并且对于您输入的所有内容,无论它是否包含 a
,都将始终为真。
我目前正在尝试雷鬼音乐 (PCRE) 和 PhP。
函数 pre_match() 似乎无法正常使用符号 {} 和 ?我想知道为什么。有人能帮我吗?
这是我仅用于示例的代码:
<?php
$search = "aaaah";
//Return "valid" while I ask for 3 "a" specifically
if(preg_match("&a{3}&", $search)){
echo 'Valid <br/>';
}else{
echo 'Invalid <br/>';
}
//Also return "valid" while I ask for 0 or 1 "a"
if(preg_match("&a?&", $search)){
echo 'Valid <br/>';
}else{
echo 'Invalid <br/>';
}
?>
一定是我理解错了什么。有人可以解释吗?我在任何地方都找不到任何东西。先感谢您!
我正在使用带有 Mac 的 MAMP 并使用 utf-8 编码。
您得到的预期结果为:
- 您连续要求 3 个
a
,在您的示例中有两个可能的系列,前 3 个a
和后 3 个a
的。所以这是一场比赛,因为您没有指定在您的 3a
系列之前或之后必须发生的事情。 - 您要求一个可选的
a
字符。任何输入都将与您正在寻找 0 或 1 a 的内容相匹配,并且对于您输入的所有内容,无论它是否包含a
,都将始终为真。