質問

私はこの文字列を持っています:

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

そして、私はそれをカンマ(、)または「 "and" stringで分割するためにうそをつくでしょう。

したがって、結果は次のとおりです。

[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, 、an n, 、またはa d. 。それは世界を探していません」と「どちらの側にもスペースがあります。あなたはおそらく欲しいです ( and ) 代わりは。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top