我有这个字符串:

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”。

谢谢您的帮助。

有帮助吗?

解决方案

不要将字符类用于此使用或分隔器|

这应该为您提供正确的输出:

preg_split("/, | and /",$data)

给出以下输出:

Array
(
    [0] => Rosemary J. Harris $^{1}$
    [1] => Vladislav Popkov $^{2}$
    [2] => Gunter M. Sch\"utz $^{3,}$*
)

其他提示

[] 定义a 角色类. 。这些匹配一个字符,该字符可以是班级中的任何字符。因此,您正在寻找该点包含一个空间的弦点的位置 a, , 一个 n, ,或 d. 。它不是在寻找世界的世界,“两边都有空间。你可能想要 ( and ) 反而。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top