Domanda

Ho questa stringa:

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

E vorrei mentire per dividerlo con virgole (,) o "e" stringa.

Quindi, il risultato dovrebbe essere:

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

Ho provato questo:

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

Che sta tornando:

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

C'è "ND" nell'ultimo elemento dell'array.

Grazie per l'aiuto.

È stato utile?

Soluzione

Non utilizzare le classi di caratteri per questo usare o separatore |

Questo dovrebbe darti l'output corretto:

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

Fornisce il seguente output:

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

Altri suggerimenti

[] definire a classe di personaggi. Questi corrispondono a un singolo personaggio, in cui quel personaggio può essere uno qualsiasi dei personaggi della classe. Quindi stai cercando un punto nella tua stringa in cui quel punto contiene uno spazio, un a, un n, o a d. Non sta cercando il mondo "e" con spazi su entrambi i lati. Probabilmente vuoi ( and ) invece.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top