2016-03-22 23 views
0

コンマ(,)または&の文字列を分割したいと思います。これは簡単ですが、大括弧で囲まれたコンテンツの一致を停止したいと考えています。たとえば は、私はこれが(したがってPHPと)(*SKIP)(*FAIL)メカニズムPCREための完璧な例です事前特定のパターンを除外する正規表現

+2

質問を編集し、さらにサンプル入力と予想される出力を追加できますか?例えば、あなたは '&'と言っていましたが、どうすればいいでしょうか? –

答えて

1

で唯一の分割と二つの要素

感謝があることが必要

sleeping , waking(sit,stop) 

上で実行する場合オファー。
次のコードを考え出すことができます:これは、括弧内ではありません任意の,&を分割します

<?php 
$string = 'sleeping , waking(sit,stop)'; 
$regex = '~\([^)]*\)(*SKIP)(*FAIL)|[,&]~'; 
# match anything between (and) and discard it afterwards 
# instead match any of the characters found on the right in square brackets 
$parts = preg_split($regex, $string); 
print_r($parts); 
/* 
Array 
(
    [0] => sleeping 
    [1] => waking(sit,stop) 
) 
*/ 

?>