2016-03-22 18 views
0

Dizgiyi virgül (,) veya & için bölmek istiyorum. Bu basit ama parantez içindeki herhangi bir içerik için eşleşmeyi durdurmak istiyorum. Örneğin ben bu (böylece PHP ve) (*SKIP)(*FAIL) mekanizması PCRE için mükemmel bir örnektir peşinBelirli bir deseni dışarıda bırakan Normal İfade

+2

Sorunuzu düzenleyebilir ve daha fazla örnek giriş ve beklenen çıktı ekleyebilir misiniz? Örneğin, '& 'den bahsettiniz, nasıl davranmalı? –

cevap

1

sadece bir bölme ve iki element

sayesinde sağlanması gerekir

sleeping , waking(sit,stop) 

üzerinde çalıştırırsanız teklifler.
Aşağıdaki kod ile gelebilir:

<?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) 
) 
*/ 

?> 

Bu bölecek herhangi , veya parantez içinde değil olduğunu &.