@Kell
Öylede ya ben regexi anlamadım yada yapamıyorum :)))

@caos
Öncelikle teşekkür ederim hocam, fakat bu kezde asd harflerini hep siliyor :/
Kodu eve geçince deneyeyim. Ezber iş yaptım biraz, bu şekilde aklımda kalmış. Olmazsa mecbur regex yazılacak.
edit

Explode fonksiyonunu doğru hatırlamışım, sen de neden "asd" lerinde gittiğini anlamadım :/


[function deneme]
LOCAL._text "hamit 123 asd123 123aaa123b 123 asd"
LOCAL._explode <EXPLODE 123,<LOCAL._text>>
ARGS <LOCAL._explode>

FOR <ARGV>
  IF strregex(^[0-9A-Za-zçışğüö ]+$,<argv[<dlocal._for>]>)
    LOCAL._return .= <argv[<dlocal._for>]>
  ENDIF
ENDFOR

SAY <strsub 1 0 <LOCAL._return>>

Deneme amaçlı olarak böyle yaptım, fakat senin "123" lerin sürekli olarak bir değişken olacaksa alternatif olarak şu kodu da kullanabilirsin.


[FUNCTION strdel]
ARGS <EXPLODE <STRARG <ARGS>>,<STREAT <ARGS>>>
FOR <ARGV>
  IF strregex(^[0-9A-Za-zçışğüö ]+$,<argv[<dlocal._for>]>)
    LOCAL._return .= "<argv[<dlocal._for>]>"
  ENDIF
ENDFOR

RETURN <STRSUB 1 0 <LOCAL._return>>

Kullanımı :
say <strdel 123,hamit 123 asd123 123aaa123b 123 asd>

123, = virgülden sonra gelen metnin içinde silinecek olan değer

Bu konu caos tarafından düzenlendi(2012-02-05 17:16, 12 yıl önce)
hocam teşekkürler öncelikle, fakat 12 yazdığımda 12 yide siliyor ben bunu istemiyorum tam olarak kelimenin kendisini silmesini istiyorum. Ama uğraşmışsın teşekkür etmeden geçemeyecem. Çok teşekkür ederim fakat oldu diyemiyorum :/
Verdiğin hamitli örnekle çalıştığım için farkedemedim diğerini de sildiğini (:


[function deneme]
LOCAL._text "b 123 a 123 selam naber123 :D"
LOCAL._explode <EXPLODE " ",<LOCAL._text>>
args <LOCAL._explode>

FOR <ARGV>
  IF !strmatch(123,<argv[<dlocal._for>]>)
    LOCAL._return .= " <argv[<dlocal._for>]>"
  endif
ENDFOR

SAY <STRSUB 1 0 <LOCAL._return>>

Bu kod ayrı olan 123 leri siliyor fakat naber123 yazısındaki 123 ü silmiyor. Bunuda silsin istiyorsan harf harf ilerleyen bir forla çözülebilir.



Üye Ol veya Giriş Yap

Bu forum başlığına mesaj atmak istiyorsanız hemen üye olun veya giriş yapın.