Pergunta

Eu tenho essa string:

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

E eu gostaria de dividi -lo com vírgulas (,) ou "e" string.

Então, o resultado deve ser:

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

Eu tentei isso:

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

Que está retornando:

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

Existe o "ND" no último item da matriz.

Obrigado pela ajuda.

Foi útil?

Solução

Não use classes de caracteres para isso, use o ou Seperator |

Isso deve fornecer a saída correta:

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

Fornece a seguinte saída:

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

Outras dicas

[] definir a classe de personagem. Isso corresponde a um único personagem, onde esse personagem pode ser qualquer um dos personagens da classe. Então você está procurando um lugar na sua corda onde esse local contém um espaço, um a, um n, ou a d. Não está procurando o mundo "e" com espaços de ambos os lados. Você provavelmente quer ( and ) em vez de.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top