Znajdź pytania (słowa przed „?”) Regex Microsoft Word

0

Mam kilka książek, które są nieprawidłowo sformatowane i zawierają między innymi PYTANIA i Odpowiedzi.

Moim zadaniem jest sprawienie, by wszystkie pytania ZOSTAŁY KAPITALIZOWANE I ZŁOŻONE. Używam MS Word do obsługi części, które są już poprawnie sformatowane, więc przeniesienie go do Notepad ++ (na przykład) i wstecz nie jest opcją.

Jedynym możliwym rozwiązaniem, jakie mogę sobie wyobrazić, jest użycie symboli wieloznacznych do znalezienia wszystkich słów przed „?” i żadne później, zastępując je opcjami formatowania już w narzędziu zastępującym MS Word.

Czy ktoś wie jak?

Jak znaleźć pytania (słowa przed „?”) Za pomocą Regex / symboli wieloznacznych?

Farang
źródło

Odpowiedzi:

2

Oto makro, które zrobi to, co chcesz. To makro zakłada, że ​​twoje pytania znajdują się we własnym akapicie. Jeśli mogą być przeplatane w akapicie, możesz użyć pętli while, aby rozwijać znak wyboru po znaku, aż trafisz na wielką literę, zamiast po prostu rozwinąć cały akapit.

Sub FormatQuestions() 'Finds everything that starts with a capital letter and ends with a question mark. Bolds it and puts it in all caps. 'Variable definitions Dim intTotalChars As Integer Dim intLoop As Integer Dim strTestChar As String Dim rngQuestionRange As Range Dim intCountQuestionMarks As Integer intTotalChars = ActiveDocument.Characters.Count For intLoop = 1 To intTotalChars strTestChar = ActiveDocument.Characters.Item(intLoop).Text If strTestChar = "?" Then intCountQuestionMarks = intCountQuestionMarks + 1 ActiveDocument.Characters.Item(intLoop).Select Selection.Expand wdParagraph Selection.Font.Bold = True Selection.Font.AllCaps = True End If Next intLoop End Sub

W poprzedniej wersji tej odpowiedzi niepoprawnie zauważyłem, że Word nie pozwala na jednoczesne wyszukiwanie znaków akapitu i symboli wieloznacznych. W rzeczywistości tak jest, ale musisz użyć ^ 13 dla akapitu zamiast ^ p. (Ta strona firmy Microsoft zawiera listę znaków specjalnych, których można używać przy wyszukiwaniu symboli wieloznacznych: http://support.microsoft.com/kb/176776 )

Kelly Tessena Keck
źródło