Вопрос

У меня есть эта строка:

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, n, или d. Анкет Это не ищет мир »и« с пространствами с обеих сторон. Вы, наверное, хотите ( and ) вместо.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top