Belirli bir karakter stili uygulamış olabilecek en uzun dize ile eşleşen Word joker arama ifadesi


0

Bir Word belgesini LaTeX'e dönüştürmek için bir makro yazıyorum.

Bir şey hariç, her şey yolunda gider: Belge, işlevsel bir işaretleme elde etmek için karakter stillerini kullanarak, stil şablonlarını yoğun şekilde kullanır. Örneğin, metinde görünen tüm yazar adları "Yazar adı" karakter stilini kullanır. Tüm İngilizce olmayan kelimeler veya (ve bu zor olduğu yerde) ifadeler kendilerine uygulanan "Yabancı kelime" tarzı vardır.

"Yabancı kelime" tarzı örneğini ele alalım. LaTeX'e dönüştürmek için yapmanız gereken, kendilerine "Yabancı kelime" stili uygulanmış tüm karakterleri mümkün olduğunca hızlı bir şekilde araştıran, bu dizeyi alıp \ emph {\ içine sarılmış bir arama oluşturmak. 1} (eşleşen dizenin konumunu gösteren \ 1).

Microsoft'un çok mütevazı açıklamasını kullanarakJoker karakterin sözdiziminden "*" (tırnak işaretlerini siler) terimi ve uygulanmış bir "Yabancı kelime" stili için bir arama yapması beklenir, ama yapmaz. Yeterince açgözlü değil, sadece bireysel karakterleri bulmak. Aramaya sınırlayıcıları dahil ederek joker karakter aramalarını daha açgözlü hale getirebilirim --- "[] * []" kelimelerin tümünü bulur ---, ancak bu şu anki durumda başarısız olur, çünkü örneğin, "gibi bir terim" ad-hoc 'dan önce gelip sonra boşluk bırakılabilir, alanın kendisi kendisine uygulanan "Yabancı kelime" stiline sahip olmayacak ve bu nedenle arama dışında bırakılmayacaktır (potansiyel dize sınırlarının bir bolluğu olduğu gerçeği hariç): - yabancı cümle kelimesinden önce gelebilir ve ardından altı potansiyel tırnak işareti karakterinden biri olan iki nokta üst üste, noktalı virgül, boşluk,

Bu yüzden, esasen, kendisine uygulanan belirli bir stile sahip olabilecek en uzun kesintisiz dizeyle eşleşen Word için bir joker karakter arama ifadesi arıyorum.

OP'nin açıklamasını eklemek için barlop tarafından düzenlenmiştir.

Örnek olarak, alıntı yaptığım bu metni aşağıda bulabilirsiniz.

" Seigneuries dışında, aynı zamanda daha yüksek asil kavgalar da vardı, ancak günümüzde Québec'te seigneurial sisteme kadar geri izlenebilecek tek asalet unvanı , Le Moyne ailesinde ' Baron de Longueuil ' unvanı. "

Yukarıda alıntılanan metne bakın. Tüm italik kelimeler, kendilerine uygulanan "Yabancı kelime" tarzına sahiptir. "Baron de Longueil" söz konusu olduğunda, "Baron", "de" ve "Longueil" arasındaki boşlukları içerir. Bu üç italik terimin her birini sırasıyla bir dize olarak yakalayacak bir arama arıyorum.

Sonuç, "\ emph {seigneuries} 'ın dışında, bugünlerde Québec'te \ emph {seigneurial}' in başlığına geri dönebilen tek asalet unvanı olmasına rağmen, daha yüksek asalet ödülleri verildi. \ emph {Baron de Longueuil} ', Le Moyne ailesinde


"uygulamalı" yabancı kelime "stili ne anlama geliyor ?! Bağlandığın kelime yardım sayfasını kontrol ettim, "stil" kelimesini bile "yabancı kelime" kullanmıyor. Mesela, "stil" nedir, font temelli bir regex uygulamak ve koyu veya italik olmak istiyorsan, bunun bir vba sorusu olduğunu düşünürdüm. a) metnin koyu olup olmadığını test edin b) bir regex uygulayın
barlop

oh sanırım görüyorum .. yani regex'in metnin koyu olup olmadığını düşünmesini istiyorsunuz .. Peki .. hmm.
barlop

Sorunu gösteren bir olayla ilgili bir örnek verebilir misiniz
barlop

Stiller önceden tanımlanmış formatlardır. Bkz office.microsoft.com/en-us/word-help/... Sen (hem VBA makro ve gelişmiş bir Bul ve değiştir kutusunda) belli bir stil uygulanmış olması sadece bu paragraflara ya dizeleri arama işlemini sınırlayabilirsiniz onlar.
jjbornheim

Tamam ama normal bir ifadenin stilleri veya düzenli olmayan herhangi bir şeyi alması, göz önünde bulundurulması gereken başka bir meseledir. İşte herhangi bir işaretlemeli metin / girdi .. Ve işte bunun yerine neyi değiştirmesini istediğin.
barlop

Yanıtlar:


3

İşte prensip. Bu, herhangi bir italik metnin yerine, normal metnin etrafında bir miktar işaret eklenir.

^& orijinali ile değiştir anlamına gelir.

ve italik veya normal belirtmek için format..font .. 'u seçtikten sonra açılan yazı tipi iletişim kutusundaki açılır listeden italik veya düzenli seçtim.

Bulma kutusunun aslında boş olduğuna dikkat edin, ancak altında, aradığı biçimlendirme / stil olduğunu belirtir (italik)

Yenileme ile neyin değiştirileceğini ve altında ne olacağını belirtir, biçimlendirme / stil belirtir (bu durumda normal)

görüntü tanımını buraya girin

Yazı tipini / stillerini seçmekle ilgili olarak, ekran görüntüleri dahil olmak üzere nasıl yaptım.

Bul / değiştir ekranının sol alt köşesinde formatı seçin .. font

görüntü tanımını buraya girin

Ve italik seçin. Tüm bu onay kutularını 'etkiler' altındaki şeyler gibi görmezden geldim. İşe yarayan normal veya italik vb. Seçmek için kullanacağım siyah olanı daire içine aldığım metin kutusu alanındaki (italik, normal, ..) seçimlerdir.

görüntü tanımını buraya girin


Bu güzel. Hantal joker arama kullanmadan orijinali ile değiştirebilirsiniz, bilmiyordum. Teşekkür ederim!
jjbornheim

evet, bu zarif. Kelime sözdiziminde büyük değil! ms kelimesindeki regex maddeleri ms tarafından icat edilmedi. bu yüzden italik ya da herhangi bir stil işlevselliği eklememiş olduklarını düşündüm.ama, bunun yerine italik kelimeleri değiştirmek gibi basit bir fonksiyonun nasıl yapıldığını ararken buldum. Kalın ve italik olarak değiştirmek için bir bağlantı aldım. msofficeforums.com/word/… hemen hemen boş bulduklarını ve bahsettiklerini söyledi. formatta belirtilen bir link .. font Böylece, italik yerine xyz veya kalın harflerle yapılan gibi önemsiz bir şeyi nasıl yapacağınıza bakıldığında sorunuz basitleşir.
barlop
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.