2

1つ以上の下線、ダッシュ、およびピリオドを含む可能性のある文字列でいっぱいの配列があります。をアンダースコア、ダッシュ、ピリオドで区切った文字に分割したいと思います。これまでのところ、アンダースコアとダッシュは成功していますが、ピリオドは成功していません。

これは機能します:

$family02 = preg_split('/_|-/', $row['family'], -1, PREG_SPLIT_NO_EMPTY);

やってみると...

'/_|-./'
'/_|-\./'
'/_|-|./'

...または区切り文字の順序を変えると、1of3または2of3、または空の配列で分割されます。

ヘルプまたは優れた正規表現リンクをありがとうございます。

Rd

4

2 に答える 2

2

単に使用する

preg_split('/[-_.]/', $str)

これは、、、のいずれか-で分割していることを意味します_.

文字列内の空のグループを削除する場合は、

preg_split('/[-_.]+/', $str)

したがって、複数の限定詞が1つとして適用されます。

于 2012-11-04T15:17:22.477 に答える
1

次を使用する必要があります。

// [_.-] stands for a character of underscore or dash or period.
$family02 = preg_split('/[_.-]/', $row['family'], -1, PREG_SPLIT_NO_EMPTY);
于 2012-11-04T15:15:30.570 に答える