PHP正则表达式获得四位数

时间:2012-08-28 13:08:30

标签: php regex

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

3 个答案:

答案 0 :(得分: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
        )
)

答案 1 :(得分:1)

preg_match("/(?<=\[)\d{4}(?=\])/", $subject, $matches);
如果用方括号括起来,

将匹配四位数。

答案 2 :(得分:1)

以下正则表达式应该做的伎俩

$str = 'The_3454_WITH_DAE[2011][RUS][HDVDRip]';
preg_match('/\[([0-9]+)\]/', $str, $matches);