Question

J'ai cette chaîne:

Rosemary J. Harris $^{1}$, Vladislav Popkov $^{2}$ and Gunter M. Sch\"utz $^{3,}$*

Et je voudrais le diviser avec des virgules (,) ou "et" String.

Donc, le résultat devrait être:

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

J'ai essayé ceci:

$splitAuthors = preg_split('/[, ]+[ and ]/', $authors);

Qui revient:

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

Il y a le "ND" dans le dernier élément de tableau.

Merci de votre aide.

Était-ce utile?

La solution

N'utilisez pas de classes de caractères pour cette utilisation du ou du séparateur |

Cela devrait vous donner la sortie correcte:

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

Donne la sortie suivante:

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

Autres conseils

[] définir un classe de personnage. Ceux-ci correspondent à un seul personnage, où ce personnage peut être l'un des personnages de la classe. Vous cherchez donc une place dans votre chaîne où cet endroit contient un espace, un a, un n, ou un d. Il ne cherche pas le monde "et" avec des espaces de chaque côté. Tu veux probablement ( and ) Au lieu.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top