Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

NqrkOz

Yetkin
Katılım
2 Ocak 2024
Mesajlar
845
Makaleler
6
Çözümler
7
Beğeniler
747
Notepad++ programında "tüm belgeler için değiştir" özelliği var fakat benim daha ayrıntılı düzenleme yapabileceğim bir programa ihtiyacım var. Notepad++'dan ekstra olarak satırıda düzenlemek istiyorum.

Örneğin:
Arayacağım metin "setTurnDev" olacak,
düzenlemek istediğim bir satır boyunca mevcut olan "ObjectTemplate.deviation.setTurnDev 4 3 1 5" herhangi bir kod,
sonra bu satırı "SetDevMode 0 0 0" olarak bütün belgelerde aynı anda düzenlemek istiyorum.

Bunu hangi program ile ve nasıl yapabilirim?
 
Çözüm
Regex ile yapabilirsin.
Regex ifaden: setTurnDev \d+ \d+ \d+ \d+
istediğinle değiştir: setDevMode 0 0 0 0

Search modunu regex olarak işaretle ve açık olan tüm belgelerde değiştir'e tıkla.


1734641530191.webp
Neden yazılmasın ki regex dediğiniz şey inanılmaz kolay, herkesin birkaç tık ile kullanabileceği bir şey midir?
Gelişmiş regex o kadar da kolay değil ama konu sahibinin ihtiyacı olan kadarı yapay zeka araçlarına yazdırılabilecek kadar kolay gibi duruyor. Elindeki Notepad++ veya başka programlarda var olan bir özellik. @tmertarin.py ise bu basit ve elde olan işlev için yeni bir program yazdığını söylüyor. Ben buna gereksiz diyorum.
Yanlış anladığım bir yer mi var?
 
Gelişmiş regex o kadar da kolay değil ama konu sahibinin ihtiyacı olan kadarı yapay zeka araçlarına yazdırılabilecek kadar kolay gibi duruyor. Elindeki Notepad++ veya başka programlarda var olan bir özellik. @tmertarin.py ise bu basit ve elde olan işlev için yeni bir program yazdığını söylüyor. Ben buna gereksiz diyorum.
Yanlış anladığım bir yer mi var?
Çok basit olabilir fakat bu şekilde hiç regexle uğraşmış olmuyorsun ve direkt konuyu ekleyenin ihtiyacını çözüyorsun. Çözümü değil de daha çok balık tutmayı öğretmek gibi senin dediğin. Regex var dediğinde işi bilen biri zaten direkt işini çözebilir. Çözüm için regex'i konuyu ekleyenin verdiği örneğe göre yazıp vermek gerekmez mi?
 
Regex ile yapabilirsin.
Regex ifaden: setTurnDev \d+ \d+ \d+ \d+
istediğinle değiştir: setDevMode 0 0 0 0

Search modunu regex olarak işaretle ve açık olan tüm belgelerde değiştir'e tıkla.


1734641530191.webp
 
Çözüm
Regex ile yapabilirsin.
Regex ifaden: setTurnDev \d+ \d+ \d+ \d+
istediğinle değiştir: setDevMode 0 0 0 0

Search modunu regex olarak işaretle ve açık olan tüm belgelerde değiştir'e tıkla.


Eki Görüntüle 108625
Hocam 1.1, 2.5, 3.4 vs. gibi değerleri değiştiremedim, bunlar için ne yazmalıyım?

Hocam 1.1, 2.5, 3.4 vs. gibi değerleri değiştiremedim, bunlar için ne yazmalıyım?
Tamam hocam, doğaçlama buldum. "\d+." olarak birleşik girince oldu. Teşekkür ederim.
 
Son düzenleme:
Çok basit olabilir fakat bu şekilde hiç regexle uğraşmış olmuyorsun ve direkt konuyu ekleyenin ihtiyacını çözüyorsun. Çözümü değil de daha çok balık tutmayı öğretmek gibi senin dediğin. Regex var dediğinde işi bilen biri zaten direkt işini çözebilir. Çözüm için regex'i konuyu ekleyenin verdiği örneğe göre yazıp vermek gerekmez mi?
Konu sahibinin verdiği bilgi yeterli değil. Zorlasam 10 farklı anlam bile çıkabilir.
Şekil A üstte.
Düzenleme: Konu sahibi sorununu çözdü ama biz hala sorunun tam olarak ne olduğunu çözemedik.

Hocam 1.1, 2.5, 3.4 vs. gibi değerleri değiştiremedim, bunlar için ne yazmalıyım?
Ne yapmak istediğinize dair 2 örnek verebilirseniz çok güzel olur. Çünkü konudaki kimse tam olarak ne istediğinizi bilmiyor. Ben potansiyel örnek vereyim.
Bu iki satırı alttaki iki satır haline mi getirmek istiyorsunuz? Yani "SetDevMode, boşluk, bir adet rakam, boşluk, bir adet rakam, boşluk, bir adet rakam, boşluk, bir adet rakam" şeklinde olan kısmı "SetDevMode, boşluk, 0, boşluk, 0, boşluk, 0" mı yapmak istiyorsunuz? 3 tane sıfır olduğuna dikkat edin.
Yoksa en alttaki 2 satır haline mi getirmek istiyorsunuz? Üsttekinin aynısı ama dördüncü "bir adet rakam" korunuyor.
Yoksa bambaşka bir şey yapmak mı istiyorsunuz?

Kod:
blabla1 ObjectTemplate.deviation.setTurnDev 4 3 1 5 blabla2
blabla3 ObjectTemplate.deviation.setTurnDev 1 3 2 7 blabla4

blabla1 ObjectTemplate.deviation.SetDevMode 0 0 0 blabla2
blabla3 ObjectTemplate.deviation.SetDevMode 0 0 0 blabla4

blabla1 ObjectTemplate.deviation.SetDevMode 0 0 0 5 blabla2
blabla3 ObjectTemplate.deviation.SetDevMode 0 0 0 7 blabla4

Tamam hocam, doğaçlama buldum. "\d+." olarak birleşik girince oldu. Teşekkür ederim.
Regexte nokta herhangi bir karakter oluyor. \. kullansanız daha iyi. Daha hızlı çalışır.