我正在尝试查找字符串是否为<initial_part_of_name>_0.pdf
格式,即
.pdf
结尾(可以使用rtrim
_
下划线。实现这一目标的最佳方法是什么?我已经尝试过字符串函数strpos
的组合(找到位置。但是无法从字符串末尾做任何事情)。
任何指针都将不胜感激!
修改
样本字符串:
public://Big_Data_Tutorial_part4_0.pdf
public://Big_Data_Tutorial_part4_1.pdf
public://Big_Data_Tutorial_part4_3.pdf
我需要检查的原因是为了避免使用附加_<number>
存储的重复文件。
答案 0 :(得分:4)
您可以使用{"login": "datomnurdin"}
{"login": "ejamesc"}
...
功能匹配模式
检查功能preg_match()
preg_match()
在preg_match("/(.*)_(\d+)\.pdf$/", "<initial_part_of_name>_0.pdf",$arr);
,您将获得$arr[1]
在<initial_part_of_name>
中,您将获得下划线后的数字
答案 1 :(得分:0)
$str = '<initial_part_of_name>_0.pdf';
$exploded = explode('.', $str);
echo $exploded[1];
答案 2 :(得分:0)
这可以使用正则表达式完成。像
这样的东西 ^[0-9A-Za-z]+\_[\d]\.pdf$
<强>实施强>
$filename = '<initial_part_of_name>_0.pdf';
if(preg_match('/^[0-9A-Za-z]+\_[\d]\.pdf$/i', $filename)){
// name pattern Matched
}
解决方案2
使用pathinfo()
$filename = '<initial_part_of_name>_0.pdf';
$path_parts = pathinfo($filename);
if(strtolower($path_parts['extension']) == 'pdf') {
if(preg_match('/.*_[\d]$/', $path_parts['filename'])){
// name pattern Matched
}
} else {
// Not a PDF file
}
答案 3 :(得分:0)
非数组和正则表达方式
npm uninstall (Get-ChildItem).Name