我有一个字符串: The_3454_WITH_DAE [2011] [RUS] [HDVDRip] ,我想获得[]括号而不是3454年份的四位数,请帮助我并提供一个php示例正则表达式。
答案 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);