• 04-09-2013, 21:46:35
    #1
    Merhaba arkadaşlar , belirli karakterler arasını alıp onlarla işlem yapmam lazım.
    Örnek vermek gerekirse şöyle bir string alalım.
    Alıntı
    str = "yarın ailecek <--b-->istanbula <--k--> gideceğiz. oradan da <--b--> türkiyenin <--k--> kuzeyine <--b--> karadenize <--k--> doğru gideceğiz."
    bu stringte ;
    <--b--> : BÜYÜK HARFLERİ
    <--k--> : küçük harfleri
    simgeliyor

    Yani regex ile aradaki değerleri alıp , bu iki renge göre değiştirmeye çalışıyorum.
    Bu string fonksiyondan geçince şu hale getirmeye çalışıyorm:

    Alıntı
    yarın ailecek İSTANBULA gideceğiz. oradan daTÜRKİYENİN kuzeyine KARADENİZE doğru gideceğiz.

    Bir benzerini Javascript bölümünde sormuştum , PHP ile çözebilirsek,
    bir php dosyasına post edip oradan gelen veriye göre işlem yaparım artık

    ama bir türlü yapamadım,
    Umarım açıklayıcı olabilmişimdir.
    Yardımcı olabilecek varsa sevinirim, şimdiden teşekkürler.
  • 04-09-2013, 22:07:02
    #2
    Doğru anladıysam şöyle birşey işini görebilir. <--b--> ve <--k--> arasında kalan kelimeleri büyük harfa çevirir. Zaten istediğinde bu sanırım.

    <?php
    
    $str = "yarın ailecek <--b-->istanbula <--k--> gideceğiz. oradan da <--b--> türkiyenin <--k--> kuzeyine <--b--> karadenize <--k--> doğru gideceğiz." ;
    
    $buyuk = preg_quote("<--b-->");
    $kucuk = preg_quote("<--k-->");
    
    $match = preg_replace_callback("#$buyuk(.*?)$kucuk#", function($matches) {
        return mb_strtoupper($matches[1], "utf8");
    }, $str);
    
    echo $match;
  • 04-09-2013, 22:09:39
    #3
    preg_replace ile yapabilirsin
    ama biraz karışık olabilir
    http://www.myregextester.com/
    regexpal.com sitelerini dene online test et
  • 05-09-2013, 11:57:05
    #4
    _LosT_ adlı üyeden alıntı: mesajı görüntüle
    Doğru anladıysam şöyle birşey işini görebilir. <--b--> ve <--k--> arasında kalan kelimeleri büyük harfa çevirir. Zaten istediğinde bu sanırım.

    <?php
    
    $str = "yarın ailecek <--b-->istanbula <--k--> gideceğiz. oradan da <--b--> türkiyenin <--k--> kuzeyine <--b--> karadenize <--k--> doğru gideceğiz." ;
    
    $buyuk = preg_quote("<--b-->");
    $kucuk = preg_quote("<--k-->");
    
    $match = preg_replace_callback("#$buyuk(.*?)$kucuk#", function($matches) {
        return mb_strtoupper($matches[1], "utf8");
    }, $str);
    
    echo $match;
    Teşekkürler üstad eline sağlık. Bu oldu sadece tek bir sorun var gibi.

    en sonda ;
    "karadenize <--k--> doğru <--b--> gideceğiz." şeklinde olduğu zaman GİDECEĞİZ şeklinde büyük yazması lazım ama orası eksik kalıyor.

    eve gidince explode ile parçalayıp büyütmeyi düşünüyorum sanki öyle de olur gibi geldi.



    erkutarhan adlı üyeden alıntı: mesajı görüntüle
    preg_replace ile yapabilirsin
    ama biraz karışık olabilir
    http://www.myregextester.com/
    regexpal.com sitelerini dene online test et
    teşekkürler inceleyeceğim.
  • 05-09-2013, 12:11:54
    #5
    uysal_rockci adlı üyeden alıntı: mesajı görüntüle
    Teşekkürler üstad eline sağlık. Bu oldu sadece tek bir sorun var gibi.

    en sonda ;
    "karadenize <--k--> doğru <--b--> gideceğiz." şeklinde olduğu zaman GİDECEĞİZ şeklinde büyük yazması lazım ama orası eksik kalıyor.

    eve gidince explode ile parçalayıp büyütmeyi düşünüyorum sanki öyle de olur gibi geldi.
    Şöyle düzenledim kodları.

    <?php
    
    $str = "yarın ailecek <--b-->istanbula <--k--> gideceğiz. oradan da <--b--> türkiyenin <--k--> kuzeyine <--b--> karadenize <--k--> doğru <--b--> gideceğiz." ;
    
    $buyuk = preg_quote("<--b-->");
    $kucuk = preg_quote("<--k-->");
    
    $match = preg_replace_callback("#($buyuk(.*?)$kucuk)|$buyuk(.*?)$#", function($matches) {
        return mb_strtoupper(end($matches), "utf8");
    }, $str);
    
    var_dump($match);
  • 05-09-2013, 14:36:36
    #6
    _LosT_ adlı üyeden alıntı: mesajı görüntüle
    Şöyle düzenledim kodları.

    <?php
    
    $str = "yarın ailecek <--b-->istanbula <--k--> gideceğiz. oradan da <--b--> türkiyenin <--k--> kuzeyine <--b--> karadenize <--k--> doğru <--b--> gideceğiz." ;
    
    $buyuk = preg_quote("<--b-->");
    $kucuk = preg_quote("<--k-->");
    
    $match = preg_replace_callback("#($buyuk(.*?)$kucuk)|$buyuk(.*?)$#", function($matches) {
        return mb_strtoupper(end($matches), "utf8");
    }, $str);
    
    var_dump($match);

    teşekkürler , tam olarak yapmaya çalıştığım buydu,
    eline sağlık