En iyi yanıtlayıcılar
Tek seferde çoklu replace yapma

Soru
-
Yanıtlar
-
XML dökümanı replace ile parse ediyormuşsun gibi bir algı oluştu, birden bir ürperti geldi bana, dur bakalım hayırlısı;
var Deger = "<Ay>06</Ay>"; var sonuç = Regex.Replace(Deger,@"<Ay>([0-9]+)</Ay>", "$1")
e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
- Düzenleyen Önay YALÇINER 27 Temmuz 2019 Cumartesi 12:24
- Yanıt Olarak Öneren Mehmet Emin Kaymaz 27 Temmuz 2019 Cumartesi 12:55
- Yanıt Olarak İşaretleyen XentoX 27 Temmuz 2019 Cumartesi 20:31
Tüm Yanıtlar
-
Belkide silmek yerine içini okumalısınız.Mesela :
string sonuc = Regex.Match("<Ay>06</Ay>", @"\d+").Value;
- Yanıt Olarak Öneren CetinBasoz 27 Temmuz 2019 Cumartesi 13:40
-
string Deger = "<Ay>06</Ay>"; Console.WriteLine(Regex.Replace(Deger, "(<Ay>)|(</Ay>)",""));
Bu kadar basit bir string ile sorunsuz olmakla beraber, gercek kullanacaginiz yerde bu isinize yarayamayabilir. Bu bir XML tarzı string olduguna gore, belki de Linq kullanmanız daha akillica olacaktir:
void Main() { string Deger1 = "<Ay>06</Ay>"; string Deger2 = "<Ay>06</Ay><Ay>07</Ay><Ay>08</Ay><Ay>09</Ay>"; Console.WriteLine(Regex.Replace(Deger1, "(<Ay>)|(</Ay>)", "")); Console.WriteLine(Regex.Replace(Deger1, "(<Ay>)|(</Ay>)", "")); var elements1 = XElement.Parse($"<root>{Deger1}</root>").DescendantsAndSelf("Ay").Select(xe => new {Ay=(string)xe}); var elements2 = XElement.Parse($"<root>{Deger2}</root>").DescendantsAndSelf("Ay").Select(xe => new {Ay=(int)xe}); Console.WriteLine("Elements1"); foreach (var element in elements1) { Console.WriteLine(element.Ay); } Console.WriteLine("Elements2"); foreach (var element in elements2) { Console.WriteLine(element.Ay); } }
How to create a Minimal, Reproducible Example
The way to Go.
World's most advanced open source (object-) relational Database.
Flutter (for mobile, for web & desktop.- Yanıt Olarak Öneren Mehmet Emin Kaymaz 27 Temmuz 2019 Cumartesi 12:04
-
XML dökümanı replace ile parse ediyormuşsun gibi bir algı oluştu, birden bir ürperti geldi bana, dur bakalım hayırlısı;
var Deger = "<Ay>06</Ay>"; var sonuç = Regex.Replace(Deger,@"<Ay>([0-9]+)</Ay>", "$1")
e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
- Düzenleyen Önay YALÇINER 27 Temmuz 2019 Cumartesi 12:24
- Yanıt Olarak Öneren Mehmet Emin Kaymaz 27 Temmuz 2019 Cumartesi 12:55
- Yanıt Olarak İşaretleyen XentoX 27 Temmuz 2019 Cumartesi 20:31
-
Teşekkürler tüm yanıtlar için... Aslında yapmaya çalıştığım farklı bir şey. Daha önce kullanmadığım yöntem olan XML okuma yazma ile bunu yapmayı denedim.
Şöyle ki;
A ve B adlı iki farklı programım var. A içerisinde bir butona basınca B açılıyor bazı görevleri var onu yapıp kapanıyor. Benim A içerisinde şayet checkbox işaretli ise bir değişkeni B nin içerisine göndermem lazım ve B programında yapılacak iş bu değişken ile yapılmalı.
Checkbox işaretli ise ve butona basılırsa bir xml dosyası oluşturulup bunun içerisine değişken yazılıp ardından xml kapatılacak. Ardından B programı çalışacak. B programı çalıştığında exe'nin bulunduğu klasörde Tarih.xml dosyası var ise bunun içerisinden Ay değişkenini alıp işlemleri buna göre yapacak. İşlemler bitince Tarih.xml dosyasını silecek. Başlangıçta klasör içerisinde Tarih.xml dosyası yok ise normal kurallara göre işlemini yapacak...
Değişken gönderimini xml'e veri yazıp okuyarak yapmayı denediğim için bu yönteme başvurdum. Aslında txt i de oluşturup bunu yapabilirdim fakat xml denemek istedim.
Dediğiniz gibi replace yerine regex kullanımı daha mantıklı geldi...
-
Teşekkürler tüm yanıtlar için... Aslında yapmaya çalıştığım farklı bir şey. Daha önce kullanmadığım yöntem olan XML okuma yazma ile bunu yapmayı denedim.
Şöyle ki;
A ve B adlı iki farklı programım var. A içerisinde bir butona basınca B açılıyor bazı görevleri var onu yapıp kapanıyor. Benim A içerisinde şayet checkbox işaretli ise bir değişkeni B nin içerisine göndermem lazım ve B programında yapılacak iş bu değişken ile yapılmalı.
Checkbox işaretli ise ve butona basılırsa bir xml dosyası oluşturulup bunun içerisine değişken yazılıp ardından xml kapatılacak. Ardından B programı çalışacak. B programı çalıştığında exe'nin bulunduğu klasörde Tarih.xml dosyası var ise bunun içerisinden Ay değişkenini alıp işlemleri buna göre yapacak. İşlemler bitince Tarih.xml dosyasını silecek. Başlangıçta klasör içerisinde Tarih.xml dosyası yok ise normal kurallara göre işlemini yapacak...
Değişken gönderimini xml'e veri yazıp okuyarak yapmayı denediğim için bu yönteme başvurdum. Aslında txt i de oluşturup bunu yapabilirdim fakat xml denemek istedim.
Dediğiniz gibi replace yerine regex kullanımı daha mantıklı geldi...
- Düzenleyen Cihan YakarMVP 27 Temmuz 2019 Cumartesi 20:42
-
Teşekkürler tüm yanıtlar için... Aslında yapmaya çalıştığım farklı bir şey. Daha önce kullanmadığım yöntem olan XML okuma yazma ile bunu yapmayı denedim.
Şöyle ki;
A ve B adlı iki farklı programım var. A içerisinde bir butona basınca B açılıyor bazı görevleri var onu yapıp kapanıyor. Benim A içerisinde şayet checkbox işaretli ise bir değişkeni B nin içerisine göndermem lazım ve B programında yapılacak iş bu değişken ile yapılmalı.
Checkbox işaretli ise ve butona basılırsa bir xml dosyası oluşturulup bunun içerisine değişken yazılıp ardından xml kapatılacak. Ardından B programı çalışacak. B programı çalıştığında exe'nin bulunduğu klasörde Tarih.xml dosyası var ise bunun içerisinden Ay değişkenini alıp işlemleri buna göre yapacak. İşlemler bitince Tarih.xml dosyasını silecek. Başlangıçta klasör içerisinde Tarih.xml dosyası yok ise normal kurallara göre işlemini yapacak...
Değişken gönderimini xml'e veri yazıp okuyarak yapmayı denediğim için bu yönteme başvurdum. Aslında txt i de oluşturup bunu yapabilirdim fakat xml denemek istedim.
Dediğiniz gibi replace yerine regex kullanımı daha mantıklı geldi...
Tam da @önay abinin dediği serin yollardasınız.
Yazılım konusunda ben olaya farklı açıdan bakıyorum. Elbette şiir gibi kodlarla kısacık 2 satırla dünyalar kadar iş yaptırabilecek seviyede kişiler var, inşallah bende o seviyeye gelirim.
Fakat olayın arka tarafını yani mutfak kısmını yazılımcı hariç kimse görmüyor. Dolayısıyla kullanıcının ihtiyacına cevap veren bir işi yapıyorsam neyi nasıl yaptığımı o bilmiyor ve bilmeyecek. Uzman bir yazılımcı exe'mi decompile edip böyle kod mu yazılır lan demediği sürece program ihtiyaca cevap veriyorsa sanırım yeterlidir.
Yukarıda yaptığım fantezi mi evet fantezi gerek var mı hayır çok daha basit yollarla çözülebilir. 3 ay önce yazdığım kodu beğenmeyip bu ne a.q. diyen adamım. Tahminim 3 ay sonra bu mesajıma da böyle mantık mı olur diyeceğim. Fakat o seviyelere gelebilmem için illa bu yollardan geçmem lazım diye düşünüyorum...
- Düzenleyen XentoX 27 Temmuz 2019 Cumartesi 21:46
-
-
Fakat olayın arka tarafını yani mutfak kısmını yazılımcı hariç kimse görmüyor. Dolayısıyla kullanıcının ihtiyacına cevap veren bir işi yapıyorsam neyi nasıl yaptığımı o bilmiyor ve bilmeyecek. Uzman bir yazılımcı exe'mi decompile edip böyle kod mu yazılır lan demediği sürece program ihtiyaca cevap veriyorsa sanırım yeterlidir.
-
Yukarida XML parse ornegi de var.
How to create a Minimal, Reproducible Example
The way to Go.
World's most advanced open source (object-) relational Database.
Flutter (for mobile, for web & desktop.