看看这个能不能用正则表达来完成。

$a='个人血肉的天性(任性),必须经过理性的改变外(外在教养、锻炼……)才能成为具有现代水平的东西。但是中国的所谓玉不琢者,以抽象的理智(道德、伦理的枷锁)来规定。自然性否定了,但人性也窒息了。它把人的血肉感情禁锢在一种僵化的人生关系的枷锁上,而这人生关系本身却是一种自然性的固定化,一种合法的自然性。[哲学][人生关系][自然性]';

我想将[哲学]、[人生关系]、[自然性]取出来,如何用正则表达式完成。

用preg库的话,使用其中的preg_match_all函数和这个正则表达式:
[code="PHP"]'/[.*?]/'[/code]
合起来就是:
[code="PHP"]preg_match_all('/[.*?]/', $a, $matches);[/code]
结果会在$matches里,内容是:
[code="PHP"]array (
0 => array ( 0 => "[哲学]" ),
1 => array ( 0 => "[人生关系]" ),
2 => array ( 0 => "[自然性]" )
)[/code]
要留意一下编码问题就是了……

[.*?]