• 05-11-2019, 23:19:29
    #1
    Merhaba arkadaşlar,

    PHP'de metni noktalı virgüllere göre ayırmak istiyorum. Ama çift ve tek tırnaklar içerisindekileri istisna olarak algılaması için regex kodu bilen var mı?
    İnternette ya tek tırnak ya da çift tırnak olanı var. Ben her ikisi de olsun istiyorum. Bilen var mı?


    Arkadaşlar buldum lazım olanlar için:

    Split string by custom separator but not if inside quotes.

    Thank you: https://stackoverflow.com/questions/...-inside-quotes

    Regex101 Demo

    İstediğiniz ayracı seçebileceğiniz versiyon.
    function SplitBy($raw,$separator = ';'){
        $pattern = <<<EX
            ~(?:[^'"{$separator}]+|'[^']*'|"[^"]*")+~
        EX;
        preg_match_all($pattern, $raw, $match);
        return $match[0];
    }
  • 05-11-2019, 23:23:36
    #2
    Tam olarak anlamadım ama tek tırnak olan yere ('|") olarak değiştirirseniz ikisinide alır
  • 05-11-2019, 23:28:46
    #3
    CihanAksoy adlı üyeden alıntı: mesajı görüntüle
    Tam olarak anlamadım ama tek tırnak olan yere ('|") olarak değiştirirseniz ikisinide alır
    Hocam saatlerdir bakıyorum. Netteki regex kodlarını modifiye etmeye çalışıyorum ama bir türlü beceremedim. Buna da bi bakim. Sorun şu metni noktalı virgüllere göre bölücem ancak noktalı virgül tırnaklar içinde yazılmışsa bu noktalı virgülleri atlasın. Bu tırnaklar tek tırnakta olabilir çift tırnakta.