MS Word belgesinde bir kalıp aramak için bir yol var mı?


22

Tam bir eşleşme yerine, bir MS Word belgesindeki kalıpları aramanın bir yolu var mı?

Tüm ondalık sayıların yazılı olarak yazıldığı bir belgem var. / yerine .. Örneğin, 1.02 olarak yazıldı 1/02, çünkü Farsça tipografi kullanıyor / yerine . ondalık nokta için.

Gibi / sadece ondalık sayılar için kullanılmaz ve kesir, yüzde vb. gibi başka uygulamaları da vardır. N/M bir kelime belgesi içinde N ondalık gösterir ve M Ayrıca başka bir ondalık sayı gösterir?


2
Bu, Süper Kullanıcı'nın başlatılmasından 5 yıl sonra nasıl çoğaltılamaz?
Peter Mortensen

1
Bir başlangıç ​​noktası olabilir Microsoft Word'de Bul ve Değiştir Düzenli İfade .
Peter Mortensen

Ortada başka bir metin varsa not defterine taşımak zor olurdu, birinin bir dergi makalesi yazdığını varsayalım (lütfen bunun yerine lateks kullanın) böylece kelimeyi dışarı çıkaramazlar ya da bu tür bir şey, diğer tüm biçimlendirmeleri kaybederdi.
Charm_quark

1
Daha yeni doğrulama yaptım: En son MS Word sürümleri, Word belgelerini (* .docx) sıkıştırılmış XML tabanlı belgeler olarak depolar. Bu yapının nasıl çalıştığını öğrendikten sonra * .docx dosyanızı açabilir ve ortaya çıkan XML dosya yapılarında bir kalıp eşleştirmesi yapabilirsiniz.
Dominique

@Dominique bu ilginç. Bunu bilmiyordum
codezombie

Yanıtlar:


10

N'nin ondalık ve M'yi gösterdiği bir kelime belgesindeki 'N / M' gibi   ayrıca başka bir ondalık sayı gösterir

Sadece kullanabileceğiniz bir arama için ^#/^# arama parametreniz olarak. Altında Daha seçenekler ve Özel bul , yardımcı olabilecek başka seçenekler de var.

Nb: ^# , bir ondalık basamak, özellikle x / yy arıyorsanız, o zaman ^#/^#^# vb.

değiştirmek,

Bu daha iyi bir seçenek, arama yapmak ([0-9])/([0-9]) ve ile değiştirin \1.\2 ve "joker karakterleri kullan" özelliğini etkinleştirin ve


Teşekkürler. bu isabet bulur. ancak Word, değiştirme bölümü için ^ #. ^ # kabul etmiyor. '/' Etrafını saran rakamları eksiksiz bırakmak ve '/' işaretini '.' İle değiştirmek istiyorum.
codezombie

1
"([0-9]) / ([0-9])" ile bir arama yapmayı deneyin ve "\ 1. \ 2" ile değiştirin, çift alıntı yapın. ve "joker karakterleri kullan" özelliğini etkinleştirin ve
Charm_quark

28

sözcük

Microsoft'un normal ifadeler uygulamasını kullanın

Basın CTRL + 'H " tıklamak Daha " Etkinleştirme Joker karakterler kullanın

  • Ne buldun: ([0-9]{1,2})/([0-9]{2})
  • İle değiştirin: \1.\2

enter image description here enter image description here

Bu çılgın bir arama düzenine benziyor, o yüzden inceleyelim:

  • [0-9] Tek bir sayısal değer anlamına gelir (0,1,2,3,4,5,6,7,8 ve 9)
  • {1,2} önceki karakter veya ifadenin oluşumunu saymak için kullanılır. Bizim durumumuzda bu demek oluyor ki: Sadece bir veya iki sayısal ara .

    Dikkat: Almanca sözcük kullanıyorsanız, kullanmak zorundasınız. ; ayırıcı yerine ,

  • / özel bir anlamı yok. Kelimenin tam anlamıyla bir eğik çizgi arar
  • () yuvarlak parantez önemlidir. Deseni mantıksal dizilere bölerler böylece daha sonra kullanabiliriz \1, \2... \n bizim düzenimizde. Bu şekilde değerleri koruruz

Bölüm hakkında daha fazla bilgi edinin İfadeler, Parça Parça Microsoft'un destek makalesinde veya Graham Mayor'un Word sitesi


VBA (daha iyi çözüm)

Diğer RegEx motorlarından varsayılana daha çok uyan bir VBA yöntemi kullanmanızı öneririm. Onlar daha iyi belgelenmiş ve daha fazla kişi size yardımcı olabilir.

Bu makro, RegEx deseninin tüm belgede arama yapmasını ve verilen dizeyle değiştirmesini ister.

Basın ALT + F11 VBA editörünü açmak için Kodu herhangi bir yere yapıştırın ve uygulayın. F5

Sub RegexReplace()

    Dim RegEx As Object
    Set RegEx = CreateObject("VBScript.RegExp")    
    On Error Resume Next

    RegEx.Global = True
    RegEx.Pattern = InputBox("Find what:")
    ActiveDocument.Range = _ 
        RegEx.Replace(ActiveDocument.Range, InputBox("Replace with:"))        

End Sub
  • Ne buldun: (?!\d)/(?=\d)
  • İle değiştirin: .

enter image description hereenter image description here

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.