我有这个字符串:
Rosemary J. Harris $^{1}$, Vladislav Popkov $^{2}$ and Gunter M. Sch\"utz $^{3,}$*
我会谎言用逗号(,)或“和”字符串分割它。
所以,结果应该是:
[0] -> Rosemary J. Harris $^{1}$
[1] -> Vladislav Popkov $^{2}$
[2] -> Gunter M. Sch\"utz $^{3,}$*
我试过这个:
$splitAuthors = preg_split('/[, ]+[ and ]/', $authors);
返回:
[0] -> Rosemary J. Harris $^{1}$
[1] -> Vladislav Popkov $^{2}$
[2] -> nd Gunter M. Sch\"utz $^{3,}$*
最后一个数组项中有“nd”。
感谢您的帮助。
答案 0 :(得分:3)
不要使用字符类来使用或分隔符
这应该给你正确的输出:
preg_split("/, | and /",$data)
提供以下输出:
Array
(
[0] => Rosemary J. Harris $^{1}$
[1] => Vladislav Popkov $^{2}$
[2] => Gunter M. Sch\"utz $^{3,}$*
)
答案 1 :(得分:1)
[]
定义字符类。它们匹配SINGLE字符,其中该字符可以是类中的任何字符。因此,您需要在字符串中查找该位置包含空格,a
,n
或d
的位置。它不是在寻找世界“和”,两边都有空格。您可能需要( and )
。