-3

我有一个字符串:The_3454_WITH_DAE[2011][RUS][HDVDRip],我想得到 [] 括号之间的四位数字,而不是 3454,请帮助我并提供正则表达式的 php 示例。

4

3 回答 3

3

您必须转义方括号才能匹配它们

\[([\d]{4})\]

演示http://codepad.viper-7.com/J4Rnkt

preg_match_all(
    '/
        \[           # match any opening square bracket
        ([\d]{4})    # capture the four digits within
        \]           # followed by a closing square bracket
    /x', 
    'The_3454_WITH_DAE[2011][RUS][HDVDRip]',
    $matches
);

print_r($matches);

输出:

Array
(
    [0] => Array
        (
            [0] => [2011]
        )

    [1] => Array
        (
            [0] => 2011
        )
)
于 2012-08-28T13:10:09.823 回答
1
preg_match("/(?<=\[)\d{4}(?=\])/", $subject, $matches);

如果用方括号括起来,将匹配四位数字。

于 2012-08-28T13:10:48.140 回答
1

以下正则表达式应该可以解决问题

$str = 'The_3454_WITH_DAE[2011][RUS][HDVDRip]';
preg_match('/\[([0-9]+)\]/', $str, $matches);
于 2012-08-28T13:11:54.973 回答