我一直在参考http://www.regular-expressions.info/reference.html,但是我无法理解我的正则表达式如何无法成功。
function is_name($Argv){
$RegExp='/^[a-zA-Z]+[a-zA-Z()\. ]?+[a-zA-Z)]?+$/';
return preg_match($RegExp,$Argv)?$Argv:false;
}
我正在尝试使名称字母开始,中间的某些符号或空格是可选的,最后可用“)”。
$testArray=array('L','D Luffy','Luffy','Monkey D. Luffy','Choppa(fiftyB)');
foreach($testArray as $key=>$value)
echo $auth->check->is_name($value); //output 'LLuffy'
事实证明只有“L”和“Luffy”可以接受,但不匹配可选的中间空格。我不能选择中间可选,因为我必须匹配“L”。
更新
问题解决了,但是我正在尝试解决的问题[]?
(我认为)?+
之前的 php 匹配[]?
function is_name($Argv){
$RegExp='/^[a-zA-Z]+([a-zA-Z()\. ]?)+([a-zA-Z)]?)+$/';
return preg_match($RegExp,$Argv)?$Argv:false;
}