PHP正则表达式
我有一个数组PHP正则表达式,php,regex,Php,Regex,我有一个数组 $array = ['download.png', 'download-1.png', 'download-2.png'] 我想要一个能匹配所有三个元素的正则表达式。到目前为止,我已经试过了 /('."$filename".')\-*[0-9]*$/ 其中$filename='download.png' 如果它有帮助的话,我正在尝试在这个例子中使用正则表达式 foreach($len as $value){ if(preg
$array = ['download.png', 'download-1.png', 'download-2.png']
我想要一个能匹配所有三个元素的正则表达式。到目前为止,我已经试过了
/('."$filename".')\-*[0-9]*$/
其中$filename='download.png'
如果它有帮助的话,我正在尝试在这个例子中使用正则表达式
foreach($len as $value){
if(preg_match('/('."$filename".')\-*[0-9]*$/', $value->getValue()) ){
$array[] = $value->getValue();
var_dump( $array); echo '<br>';
}
}
foreach($len作为$value){
如果(preg_match('/('.“$filename.”)\-*[0-9]*$/',$value->getValue()){
$array[]=$value->getValue();
变量转储($array);回显“
”;
}
}
帮助我任何人提前谢谢 试试看
explode($filename,”)[0]
将$filename
拆分为['download','png']
,然后获取该数组中的第一个元素download
(?:-\d)?
是可选的(是?
使其成为可选的)非捕获组(即(?:
)匹配破折号和数字。这意味着匹配-1
是可选的
根据我对你问题的理解,
$value->getValue()
类似于download-2.png
。你的正则表达式与.png
扩展名不匹配。为此,我在我的正则表达式中添加了\.png
。没有正则表达式的替代解决方案。如果数组中有两个项,则在“-”上分解,该数组的名称中包含“-”
$array = ['download.png', 'download-1.png', 'download-2.png'];
Foreach($array as $val){
$exp = explode("-", $val);
If(isset($exp[1])){
Echo "name is: " . $exp[0] . "-" . $exp[1] . "\n";
}Else{
Echo "name is: " . $exp[0] ."\n";
}
}
是否
filename
始终=下载?$filename
包含文件扩展名。@如果我的回答对您有帮助,请不要忘记标记为已接受:)