使用正则表达式分组中的字符串

时间:2014-06-02 20:40:09

标签: php regex pcre

我想像这样解析字符串:

[NP Amanda Brumfield],[NP the estranged daughter][PP of][NP actor Billy Bob Thornton],[VP was found][ADJP guilty][PP of][VP aggravated][NP manslaughter][PP of][NP a child]

并在所有这些情况下识别这些群体:

[NP Amanda Brumfield][NP the estranged daughter][PP of][NP actor Billy Bob Thornton]
,
[ADJP guilty][PP of]
and
[NP manslaughter][PP of][NP a child]

换句话说,它应该使用字符串[VP \w+]来分割字符串。

我该怎么写正则表达式?

1 个答案:

答案 0 :(得分:0)

@Casimir et Hippolyte提到使用preg_split(),这是正确的。以下内容将按照您的请求方式拆分给定的输入:

$parts = preg_split('/\[VP\s+(?:[^\]])+\]/', $input);

该模式应该允许在初始VP之后的几乎所有内容以及在结束]之前的一个或多个空格。对于非捕获的parens,PHP应该没问题。