我需要一个正则表达式,从中提取一个数字,该数字始终位于用 () 包装的文件末尾。

例如:



希望有一些正则表达式专家:)

最佳答案

随便写写,$ 就是主题的结尾:

$pattern = '/\((\d+)\)\.png$/';
$number  = preg_match($pattern, $subject, $matches) ? $matches[1] : NULL;

这是一个所谓的 anchor 定模式,它工作得很好,因为正则表达式引擎知道从哪里开始——在最后。

这个疯狂模式的其余部分只是引用所有需要引用的字符:
(, ) and . => \(, \) and \. in:

().png     => \(\)\.png

然后在那里放置一组匹配项,只包含一个或多个( + )数字 \d :
\((\d+)\)\.png
  ^^^^^

最后让这个工作,添加 $ 来标记结束:
\((\d+)\)\.png$
              ^

准备运行。

关于PHP 正则表达式 : extract last number in filename,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14074131/

10-15 12:33