Not Defteri ++ ile karakter dizileri takas etme


0

Düzenli ifadelerin, tırnak işaretleri / virgüllerle ayrılmış üç metin bölümünü değiştirmek için nasıl kullanılacağını bulmak istiyorum. Bu sorunun amacı için onları dizeler olarak adlandıracağım, bunun doğru olup olmadığından emin değilim. Bir örnek aşağıdadır:

"TEXT_MAP_CENTER","中央地点","Center of Map"

Japonca metni ikinci dizgede ilk önce İngilizce ile değiştirmem gerekiyor, bu yüzden şunu okuyor:

"TEXT_MAP_CENTER","Center of Map","中央地点"

Bu, yaklaşık 4300+ sadece bir satırdır ve her dize benzersizdir. Neyse ki, bu belirli dosyada her satır her zaman üç karakter dizisidir. Bunu yapmam gereken ikinci bir dosya var.

Bunu hızlı bir şekilde yapmak için, düzenli ifadeler kullanarak bunu yapmanın bir yolu olduğunu anlıyorum, ancak bu benim normal uzmanlık alanım olmadığı için bununla gerçekten zor anlar yaşıyorum. Bunu nasıl yapacağım?

Yanıtlar:


0

değiştirmek

,(".*?"),(".*?")$

ile

,\2,\1

İki (), sırasıyla \1ve tarafından referans verilen iki dizeyi yakalar \2. Daha sonra ilkini ikinci dizge ile değiştiririz, bunun tersi de geçerlidir.

Dizeler yeni satırlar içeriyorsa , regex arama seçeneğinde .eşleşen yeni satırları seçmeniz yeterlidir . Bu seçeneği etkinleştirmeden alternatif bir yol

Find what:    ^("[^"]*"),("[^"]*"),("[^"]*")$
Replace with: \1,\3,\2

Bu bilgi için çok teşekkür ederim. Kusursuz bir şekilde çalıştı - Birden fazla satıra bölünmüş girdileri içeren dosyanın bazı parçalarını keşfettim (sanki belirli bir boyuttaki metin kutusuna sığmaları gerekiyormuş gibi görünüyorlar). Bunun için de benzer bir yöntem var mı ya da bunları elle düzenlemek daha mı iyi olurdu?
Tony Marotta

@TonyMarotta düzenlememi gör
phuclv

cevabım size yardım ederse, lütfen onay işaretini tıklayarak kabul edebilir misiniz ?
phuclv
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.