3
特殊文字が見つかるたびに文字列を分割したい。すべての特殊文字にpreg_splitを使用する
私はこれでした:
preg_split("[\\W]", $str);
をしかし、これはまだアンダースコアを許可(?そしておそらくそれ以上)になる
それは一つではないものでAZと数字とのスプリットAZできるようちょうど言うことは可能ですこれらの?あなたは、あなたの質問にだけ答えている
特殊文字が見つかるたびに文字列を分割したい。すべての特殊文字にpreg_splitを使用する
私はこれでした:
preg_split("[\\W]", $str);
をしかし、これはまだアンダースコアを許可(?そしておそらくそれ以上)になる
それは一つではないものでAZと数字とのスプリットAZできるようちょうど言うことは可能ですこれらの?あなたは、あなたの質問にだけ答えている
:
preg_split('~[^a-z0-9]~i', $str);
[^a-z0-9]
が文字クラスは、(原因i
修飾子にしてA-Z
)の任意a-z
以外の文字にマッチし否定し、以外を参照してください。数字(0-9
で定義)。
もう一つの方法は、否定文字クラス内POSIX [:alnum:]
文字クラスを使用している:
'~[^[:alnum:]]~'
は、単一のcharの正規表現の区切り文字ではなく、ペアのものを使用する方が簡単であることregex demo
注意、私のお気に入りを参照してください。 ~
です。これは正規表現のパターンではほとんど使われないので、私は自分のパターンであまりにも多くをエスケープする必要はありません。
非常に詳細な回答!私は正規表現にはかなり新しいので、可能かどうかはわかりませんでした – Bart
[**否定された文字クラスに住むWebリソースへのリンク**](http://www.regular-expressions.info/ charclass.html#negated) –