3

特定の条件に一致するファイルを取得するには、preg_match を使用する必要があります。たとえば、「123-stack-overflow.txt」という名前のファイルを見つけたいとします。123- の後と .txt の前には、任意の文字を含めることができます。

これが機能するようにどのように変更できますか?

preg_match("/^$ID-(.+).txt/" , $name, $file);
4

3 に答える 3

2
//^ beginning of line<br/>
//preg_quote($ID, '/') Properly escaped id, in case it has control characters <br/>
//\\- escaped dash<br/>
//(.+) captured file name w/out extension <br/>
//\.txt extension<br/>
//$ end of line

    preg_match("/^".preg_quote($ID, '/')."\\-(.+)\\.txt$/" , $name, $file);
于 2012-12-07T19:09:22.303 に答える
2

正規表現^123-.+\.txt$

^       # Match start of string
123-    # Match the literal string 123-
(.+)    # Match anything after (captured)
\.txt   # Match the literal string .txt 
$       # Match end of string

php:

$str="123-stack-overflow.txt";

preg_match('/^123-(.+)\.txt$/',$str,$match);
echo $match[0];
echo $match[1];

>>> 123-stack-overflow.txt
>>> stack-overflow
于 2012-12-07T19:00:31.843 に答える
0

あなたは逃げなければなりません。憲章

preg_match("/^$ID-(.+).txt/" , $name, $file);

する必要があります

preg_match("/^$ID-(.+)\.txt^/U" , $name, $file);

$ID の代わりにすべての数字に一致させたい場合は、使用できます

preg_match("/^[0-9]+-(.+)\.txt^/U" , $name, $file);
于 2012-12-07T19:03:10.447 に答える