正则表达式preg替换特定名称

时间:2010-11-18 16:56:17

标签: php

我的数据库中有一些以点开头的文件名 .file456 .file593

我想知道如何过滤那些以php开头的文件

感谢

2 个答案:

答案 0 :(得分:1)

为什么不在初始SQL查询中执行此操作?

WHERE 'columnname' LIKE ".%"

您可能希望使用`characters。

替换列名称周围的撇号(')

如果您在PHP中需要它,那么在迭代记录时,您可以这样做:

if(substr($recordvalue,0,1)=="."){

//do this

}

e.g。

for($i=0;$i<$numberofrecords;$i++){
    if(substr($record[$i],0,1)=="."){

    //do this

    }
}

请注意,SQL替代方案效率要高得多。

如果您想使用preg_replace替换起始点(而不是其他点),请使用(例如):

$pattern="/^\./";
$replacement="yourstring";
$record=".file593.jpg";
echo preg_replace($pattern,$replacement,$record);
// would output 'yourstringfile593.jpg'

答案 1 :(得分:0)

你不需要正则表达式。

只需检查

if ($filename{0} == ".") ....

在mySQL中:

SELECT ... FROM tablename WHERE filename LIKE ".%"

或在文件系统中,使用这样的glob应该有效:

glob("/path/to/dirname/.*");

(虽然这个也可能抓住目录,你可能需要检查一下)