我想像这样解析字符串:
[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+]
来分割字符串。
我该怎么写正则表达式?
答案 0 :(得分:0)
@Casimir et Hippolyte提到使用preg_split()
,这是正确的。以下内容将按照您的请求方式拆分给定的输入:
$parts = preg_split('/\[VP\s+(?:[^\]])+\]/', $input);
该模式应该允许在初始VP
之后的几乎所有内容以及在结束]
之前的一个或多个空格。对于非捕获的parens,PHP应该没问题。