如何在 Microsoft Word 上使用正規表示式尋找並取代括號包圍的文本

如何在 Microsoft Word 上使用正規表示式尋找並取代括號包圍的文本

我有一份文件,其中到處都有(用戶的TL)。我想用任何東西替換它(從而在任何地方刪除它),但用戶可能不同,或者可能有很多用戶(TL by user1)(TL by user3,superuser1)。到目前為止,我已經嘗試查找(TL by .*)並替換為任何內容,但這會由於某種原因刪除除用戶和周圍括號之外的所有內容,所以我只剩下(user1)或(user3 ,superuser1)。我怎麼能讓正則表達式匹配並替換整個匹配(TL由用戶),包括parans和內部的所有內容?

這是 Word 2010 上的,今天晚些時候我回家後會提供更多信息

答案1

Office 中沒有實際的「RegEx」搜索,但您可以使用「使用通配符」選項。

因此,由於它不是真正的正規表示式,因此.沒有任何幫助。您只需要*通配符。

下一個技巧是,在 Word 中執行通配符搜尋時,括號()用於分組(就像在 RegEx 中一樣),因此如果要搜尋文字括號,則需要使用反斜線 ( \) 對其進行轉義。

將所有這些放在一起,我最終得到了這個 Find 命令,它可以按照您的需求工作(基於我的測試):

\(TL by *\)

我使用的尋找和替換對話框設定:

在此輸入影像描述

答案2

您的問題缺少版本和平台信息,但我確實找到了本文在 MS 網站上。簡而言之,

  1. 輸入以下名稱列表

    Chuck Norris
    Bruce Lee
    James Bond Bond
    
  2. 在「主頁」標籤上的編輯組,點選代替打開尋找和替換對話框。

  3. 如果您沒有看到使用通配符複選框,點擊更多的,然後選取該複選框。如果不選取該複選框,Word 會將通配符視為文字。
  4. 在中輸入以下字符找什麼盒子。確保兩組括號之間包含空格:

    (<*>) (<*>)

  5. 在裡面用。框中,鍵入以下字元。確保在逗號和第二個斜線之間包含空格:

    \2, \1

  6. 選擇該表,然後按一下全部替換。 Word 會交換名稱並用逗號分隔它們,如下所示

    Norris, Chuck
    Lee, Bruce
    Bond, James Bond
    

警告,這對我在 OSX 10.10.2 上使用 Office 2011 不起作用。但是,該頁面上還有更多高級功能的資訊。

答案3

https://support.office.com/en-us/article/Find-and-replace-text-and-other-data-in-a-Word-document-c6728c16-469e-43cd-afe4-7708c6c779b7詳細資訊

微軟聲稱有自己的通配符語言“正則表達式”,並且僅在“高級查找或替換”對話框中可用。而且它的語言與其他正規表示式略有不同。

相關內容