日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

word中使用正则表达式进行查找和替换

發布時間:2024/3/26 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 word中使用正则表达式进行查找和替换 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

試一試!

本節中的步驟介紹了如何使用正則表達式轉置姓名。請記住,始終使用**“查找和替換”**對話框來運行您的正則表達式。同時請記住,如果表達式沒有按預期工作,你始終可以按下 CTRL + Z 來撤銷您的更改,然后嘗試其他表達式。

轉置姓名
  • 啟動 Word,然后打開一個新的空白文檔。
  • 復制此表格,將它粘貼到該文檔中。
  • Josh Barnhill
    Doris Hartwig
    Tamara Johnston
    Daniel Shimshoni
  • 在**“開始”選項卡上的“編輯”組中,單擊“替換”以打開“查找和替換”**對話框。
  • [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-mwXNR1cr-1589334269775)(http://officeimg.vo.msecnd.net/zh-cn/files/354/571/ZA010372137.gif)]

  • 如果您沒有看到**“使用通配符”復選框,請單擊“更多”**,然后選中該復選框。如果您沒有選中該復選框,Word 會將通配符視作文本。
  • 在**“查找內容”**框中鍵入以下字符。請確保您在兩組括號之間包含了空格:
  • (<*>) (<*>)

  • 在**“替換為”**框中,鍵入以下字符。請確保您在逗號和第二個斜杠之間包含了空格:
  • *2, \1*

  • 選擇該表格,然后單擊**“全部替換”**。Word 會轉置這些姓名并使用逗號分隔它們,如下所示:
  • Barnhill, Josh
    Hartwig, Doris
    Johnston, Tamara
    Shimshoni, Daniel

    此時,您可能會想知道:如果您的姓名中有一部分或全部包含中間名首寫字母,該怎么做? 請參閱使用正則表達式中的第一個示例以了解更多信息。

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-L4eb2WZj-1589334269777)(http://officeimg.vo.msecnd.net/zh-cn/files/206/661/ZA010077668.gif)] 返回頁首

    正則表達式的工作原理

    從此處開始,請記住這條原則:文檔內容決定了您絕大多數(并非全部)正則表達式的設計。例如,在您之前使用的示例表格中,每個單元格都包含了兩個單詞。如果單元格包含兩個單詞和一個中間名首寫字母,您將使用不同的表達式。

    讓我們由內而外檢查每個表達式:

    在第一個表達式 (<*>) (<*>) 中:

    • 星號 (*****) 會返回單詞中的全部文本。
    • 小于和大于符號 (< >) 分別標記了每個單詞的開始和結束。它們確保搜索會返回單個單詞。
    • 它們之間的括號和空格將單詞拆分成不同的組:(第一個單詞)(第二個單詞)。括號還指示了您希望搜索以何種順序處理每個表達式。

    換而言之,該表達式說:“查找兩個單詞。”

    在第二個表達式 \2, \1 中:

    • 斜杠 (****) 與數字放在一起充當占位符。(您也可以使用斜杠來查找其他通配符。請參閱下一節以了解更多信息。)
    • 第一個占位符后的逗號在兩個被轉置的姓名之間插入正確的標點符號。

    換而言之,該表達式說:“寫入第二個單詞,添加逗號,寫入第一個單詞。”

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-xPwYfmrL-1589334269778)(http://officeimg.vo.msecnd.net/zh-cn/files/206/661/ZA010077668.gif)] 返回頁首

    要查找和替換的項目的通配符

    可以使用通配符搜索文本。例如,可使用星號 () 通配符搜索字符串(例如,使用“sd”將找到“sad”和“started”)。

    使用通配符查找和替換文本

  • 在**“開始”選項卡上的“編輯”組中,單擊“查找”旁邊的箭頭,然后單擊“高級查找”**。
  • [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-lr58uHWq-1589334269779)(http://officeimg.vo.msecnd.net/zh-cn/files/354/571/ZA010372137.gif)]

  • 選中**“使用通配符”**復選框。
  • 如果看不到**“使用通配符”復選框,請單擊“更多”**。

  • 請執行下列操作之一:
    • 若要從列表中選擇通配符,請單擊**“特殊格式”,再單擊通配符,然后在“查找內容”**框中鍵入任何其他文本。要了解更多信息,請參閱可用的通配符表。
    • 在**“查找內容”**框中直接鍵入通配符。要了解更多信息,請參閱“可用的通配符”表格。
  • 如果要替換該項目,請單擊**“替換”選項卡,然后在“替換為”**框中鍵入要用作替換的內容。
  • 單擊**“查找下一處”“查找全部”“替換”“全部替換”**。
  • 若要取消正在執行的搜索,請按 Esc。

    可用的通配符

    注釋

    • 選中**“使用通配符”復選框后,Word 將只查找與指定的內容精確匹配的文本。請注意,“區分大小寫”“全字匹配”**復選框將不可用(灰顯),以表示這些選項已自動開啟。您無法關閉這些選項。
    • 若要搜索已被定義為通配符的字符,請在該字符前面鍵入一個反斜杠 (****)。例如,鍵入 ? 來查找問號。
    • 可使用括號對通配符和文本進行分組,以指明處理順序。例如,鍵入 <(pre)*(ed)> 可以找到“預排序的”和“已阻止的”。
    • 可使用 \n 通配符搜索表達式,然后將其替換為經過重新排列的表達式。例如,在**“查找內容”框中鍵入 (Ashton) (Chris),并在“替換為”**框中鍵入 \2 \1。Word 將找到 Ashton Chris 并將其替換為 Chris Ashton
    用于查找類型示例
    任一字符?s?t 可找到“sat”和“set”。
    任何字符串*****s*d 可找到“sad”和“started”。
    單詞開頭<<(inter) 可找到“interesting”和“intercept”,但找不到“splintered”。
    單詞結尾>(in)> 可找到“in”和“within”,但找不到“interesting”。
    指定字符之一[ ]w[io]n 可找到“win”和“won”。
    此范圍內的任一字符[-][r-t]ight 可找到“right”和“sight”。范圍必須是升序。
    除了括號內范圍中的字符之外的任一字符[!x-z]t[!a-m]ck 可找到“tock”和“tuck”,但找不到“tack”或“tick”。
    前一個字符或表達式的 n 個匹配項{n}fe{2}d 可找到“feed”,但找不到“fed”。
    前一個字符或表達式的至少 n 個匹配項{n,}fe{1,}d 可找到“fed”和“feed”。
    前一個字符或表達式的 n 到 m 個匹配項{n,m}10{1,3} 可找到“10”、“100”和“1000”。
    前一個字符或表達式的一個或多個匹配項@lo@t 可找到“lot”和“loot”。

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-y3Bu32NV-1589334269781)(http://officeimg.vo.msecnd.net/zh-cn/files/206/661/ZA010077668.gif)] 返回頁首

    使用正則表達式

    這些示例會向您展示一些在 Microsoft Word 中使用正則表達式的方法

    示例 1:轉置帶中間名首寫字母的姓名

    此示例使用通配符和字符代碼組合來轉置包含中間名首寫字母的姓名。如果您不熟悉字符代碼,請參閱“Word 幫助”主題查找和替換 Word 2010 文件中的文本和其他數據。

    在操作過程中,請記住下列事實:

    • 在對表格中的姓名使用此表達式時,您必須首先將該表格轉換成文本。
    • 如果表格包含多個列,請將包含姓名的列復制到空白文檔中,然后在那里將它轉換成文本。
    • 轉置姓名后,請將文本重新轉換成表格。然后您可以刪除原始列并使用您已更改的數據 替換它。
    準備示例數據
  • 如果您還沒完成這一步,請啟動 Word 并創建一個新的空白文檔。
  • 將空白表格插入到該文檔中。將表格設為寬一列高四行。
  • 逐個復制這些姓名,并將每個姓名粘貼到空白表格單元格中:
  • Joshua Quentin Barnhill
    Doris X. Hartwig
    Tamara Y. Johnston
    Daniel Shimshoni

    您的表格應如下所示:

    Joshua Quentin Barnhill
    Doris X. Hartwig
    Tamara Y. Johnston
    Daniel Shimshoni
  • 選擇該表格,然后在**“表格工具布局”選項卡上的“數據”組中,單擊“轉換成文本”**。
  • 選擇**“段落標記”作為文本分隔符,然后單擊“確定”**。
  • 轉置帶首寫字母的姓名
  • 在**“開始”選項卡上的“編輯”組中,單擊“替換”以打開“查找和替換”**對話框。
  • 選中**“使用通配符”復選框(您可能需要單擊“更多”以查看該復選框),然后在“查找內容”**框中鍵入以下表達式:
  • (*) ([! ]@)^13

    請確保在兩組括號之間和感嘆號之后輸入空格。如果您之前沒有看到 ^13 字符,我們會在下一節介紹它的作用。

  • 在**“替換為”**框中,鍵入以下表達式:
  • \2, \1^p

  • 選擇姓名列表,然后單擊**“全部替換”**。Word 會轉置這些姓名以及中間名首寫字母或中間名,如下所示:
  • Barnhill,Joshua Quentin
    Hartwig,Doris X.
    Johnston,Tamara Y.
    Shimshoni,Daniel

    將已更改的文本重新轉換為表格
  • 請選擇已轉置的姓名列表。
  • 在**“插入”選項卡上的“表格”組中,單擊“表格”,然后單擊“將文本轉換成表格”**。
  • 會打開**“將文本轉換成表格”**對話框。

  • 在**“文字分隔位置”下,單擊“段落”,然后單擊“確定”**。
  • 逐個查看表達式

    讓我們從**“查找內容”**框中的表達式開始,逐個查看這些表達式,從而了解它們是如何工作的。

    整個表達式會查找兩組模式:一個帶有中間名首寫字母(或中間名)的名和一個姓。(*) 會查找全部名。請注意,它后面有一個空格。

    表達式的此部分與姓相匹配:

    ([! ]@)^13

    感嘆號會排除括號中指定的任何字符。在此案例中,[! ] 代表“查找除空格外的全部信息”。它的作用是從姓前面剪裁掉空格。

    @ 字符會查找前一個字符的一個或多個匹配項,因此,它的作用是確保刪除姓前面的全部空格。

    我們需要知道姓的結尾處,因此我們還使用 ^13 字符來搜索每一行結尾處的段落標記。但是,由于我們不準備重新使用該段落標記,所以我們會用括號將所有其他的內容括起來。

    您可以通過以下步驟來嘗試這一操作:將姓名再次復制到您的測試文檔中(請確保使用段落標記分隔它們),然后使用 ([! ]@)^13 在**“查找內容”**框中進行搜索。搜索會與每個姓相匹配。

    因為搜索會在下一行的起始處重新開始,所以我們使用星號通配符 (*****) 來匹配此處到下一個姓的起始處之間的全部內容。

    由于我們不準備在姓前面重新使用空格,我們使用括號來將它從兩組中排除:

    (*) ([! ]@)^13

    要點 請謹慎使用 ^13 字符代碼。通常,您可以 ^p 字符代碼來搜索段落標記。但是,無法在通配符搜索中使用該代碼。您需要替換為使用代碼 ^13。盡管無法在通配符搜索中使用 ^p 字符代碼,您應當在通配符替換操作中使用它。這是為什么? ^p 字符包含了格式信息,^13 字符則沒有。此外,您完全無法將樣式信息分配給 ^13 字符。在替換操作中錯誤使用 ^13 代碼會在實質上將您的文檔轉換成無法設置格式的文件。

    “替換”表達式 (\2 \1) 會完成實際轉置。在**“替換為”框中,\2** 字符讓搜索首先寫入第二個模式,然后在該模式后添加逗號。\1^p 字符指定了寫入第一個模式的位置并讓搜索在該模式后寫入段落標記。

    示例 2:轉置日期

    您可以使用此處顯示的正則表達式來將歐洲格式的日期轉換為美國 格式的日期。

    轉置日期
  • 復制以下日期并粘貼到您的文檔中:28th May 2003
  • 打開**“查找和替換”對話框,然后在“查找內容”**框中鍵入以下表達式:
  • ([0-9]{1,2})([dhnrst]{2}) (<[ADFJMNOS]*>) ([0-9]{4})

    請確保在以下左括號和右括號之間插入空格: 2}) (<[ and *>) ([0.

  • 在**“替換為”**框中輸入以下表達式:
  • \3 \1, \4

    請確保在每個字符集之間插入空格。

  • 單擊**“全部替換”**。
  • 搜索會將 28th May, 2003 替換為 May 28, 2003。

    逐個查看表達式

    讓我們從**“查找內容”**框中的表達式開始。該表達式的作用是將日期分解為四個部分,由多組括號來表示。每個模式都包含您在全部日期(以您在示例中使用的樣式書寫)中查找的組件。按從左到右的順序:

    • 數字范圍 [0-9] 匹配第一個模式中的一位數數字。因為日期可以由兩個數字組成,我們讓搜索返回一位數或兩位數的日期:{1,2}。結果為第一個模式:([0-9]{1,2})

    序數詞組成了第二個模式。序數詞包含“th”、“nd”、“st”和“rd”,因此我們將這些字母添加到范圍 [dhnrst] 中。因為序數詞總是由兩個字母組成,我們將字母計數限制為 2:([dhnrst]{2})

    • 接下來是空格,之后是查找月份名的文本字符和通配符。所有月份名都以這些大寫字母開頭:ADFJMNOS。我們不知道每個大寫字母后有多少個字符,因此我們在它們之后使用星號 (*)。我們只對月份名本身感興趣,因此我們使用大于和小于字符來將結果限制為單個單詞。結果為第四個模式:(<[ADFJMNOS]*>)
    • 最后,我們搜索年。我們使用相同的數字范圍,但這次我們將計數限制為四個字符 ([0-9]{4})

    請注意,我們在**“替換為”框中只寫入四個地址模式中的三個。我們從日期中省略了序數詞 (“th”),因為美國格式的日期 不使用序數詞。如果您想在日期中保留序數詞,請在“替換為”**框中輸入 \3 \1\2, \4。在本例中,您在 3 和逗號之后都輸入了空格,其他地方則沒有。

    此時,您可能要問:如何處理沒有拼寫月份名的日期?例如, 28/05/03。使用此表達式搜索:

    ([0-9]{1,2})/([0-9]{1,2})/([0-9]{2})

    使用此表達式替換:

    \3/\1/\2

    如果日期使用的格式為 28/05/2003,則在最后一個模式中使用 {4},而非 {2}

    關于在正則表達式中使用列表分隔符

    上面的例子使用以下參數來查找一位數或兩位數日期:{1,2}。在本例中,逗號將兩個值分隔開。但是請記住,您在 Windows 中的區域設置會控制您使用的列表分隔符。如果您的區域設置將分號的使用指定為列表分隔符,則您必須使用分號,而非逗號。

    要找出您的操作系統指定的列表分隔符,請執行以下操作:

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-QmJDt2yk-1589334269781)(http://officeimg.vo.msecnd.net/zh-cn/files/785/945/ZA079005000.gif)]Windows 7

  • 單擊**“開始”按鈕 [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-1tGRck9B-1589334269782)(http://officeimg.vo.msecnd.net/zh-cn/files/469/546/ZA010153816.gif)] ,然后單擊“控制面板”**。
  • 單擊**“時鐘、語言和區域”**。
  • 單擊**“更改日期、時間或數字格式”,然后單擊“其他設置”**。
  • 單擊**“數字”選項卡,然后找到“列表分隔符”**條目。
  • [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-0NWnyuED-1589334269782)(http://officeimg.vo.msecnd.net/zh-cn/files/785/945/ZA079005000.gif)]Windows Vista

  • 單擊**“開始”按鈕 [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-ECEt1xRh-1589334269783)(http://officeimg.vo.msecnd.net/zh-cn/files/469/546/ZA010153816.gif)] ,然后單擊“控制面板”**。
  • 單擊**“時鐘、語言和區域”**。
  • 單擊**“區域和語言選項”**。
  • 在**“格式”選項卡上的“當前格式”下,單擊“自定義此格式”**。
  • 單擊**“數字”選項卡,然后找到“列表分隔符”**條目。
  • [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-MFcUFxv8-1589334269783)(http://officeimg.vo.msecnd.net/zh-cn/files/785/945/ZA079005000.gif)]Windows XP

  • 單擊**“開始”,然后單擊“控制面板”**。
  • 雙擊**“區域和語言選項”**。
  • 在**“區域”選項卡上,單擊“自定義”**。
  • 單擊**“數字”選項卡,然后找到“列表分隔符”**條目。
  • 示例 3:向稱呼添加句號,或從稱呼刪除句號

    在某些國家,尊稱(Mr.、Mrs. 等)不包括句號。此示例為您展示了如何向尊稱添加句號,或從尊稱刪除句號。從現在開始,我們假定您知道如何使用**“查找和替換”**對話框。

    此表達式會查找沒有句號的 Mr、Ms、Mrs 和 Dr:

    <([DM][rs]{1,2})( )

    請注意,表達式會使用另一個包含空格的模型。該空格將緊隨尊稱之后(如果那里沒有句號)。此表達式會添加句號:

    \1.\2

    要反向操作,請使用此表達式進行搜索:

    <([DM][rs]{1,2})。

    使用此表達式進行替換:

    \1

    示例 4:查找重復段落或行

    在使用此表達式時,您可能希望首先對列表排序,以便將重復行相鄰放置。同樣的,您需要刪除全部空白段落標記。換言之,如果您使用空白段落來分隔文本塊,如下所示:

    Joshua Quentin Barnhill?
    ?
    Joshua Quentin Barnhill?
    ?
    Doris X. Hartwig?

    您需要刪除那些段落,如下所示:

    Joshua Quentin Barnhill?
    Joshua Quentin Barnhill?
    Doris X. Hartwig?

    您可以用自己喜歡的方法來刪除空白段落,但是,我們正在談論正則表達式,因此這里就有一個能夠查找兩個連續段落字符的方法。使用此表達式進行搜索(@ 字符會重復查找和替換操作并刪除全部多個空行):

    (^13)\1@

    使用此表達式替換結果:

    ^p

    現在,我們來看看替換文本的方法。此表達式會查找兩個連續相同段落的任意序列:

    (*^13)\1

    此表達式還會匹配在段落中結束的較長文本重復項。例如,對以下列表運行該表達式:

    Joshua Quentin Barnhill?
    Doris X. Hartwig?
    Joshua Quentin Barnhill?
    Doris X. Hartwig?
    Tamara Y. Johnston?

    搜索會查找前四行,只有當總體模式更改時才會停止。與之相反,如果您對此列表運行該表達式:

    Joshua Quentin Barnhill?
    Joshua Quentin Barnhill
    Doris X. Hartwig?
    Doris X. Hartwig?

    表達式會只查找前兩個段落。

    要搜索更多的相同項目,請添加更多占位符。例如,此表達式會查找三個連續相同段落:

    (*^13)\1\1

    您還可以使用大括號來達到同樣的目的。以下示例會分別查找兩個和三個相同段落:

    (*13){2}(*13){3}

    或者,您可以查找兩個或三個相同段落:

    (*^13){2,3}

    您還可以查找兩個或更多相同段落:

    (*^13){2,}

    可以使用以下字符串替換這些表達式中的任意一個:

    \1

    此外,您可以在必要時重復查找和替換操作,以便替換您文檔中的全部重復段落,或者您可以添加 @ 通配符,讓表達式為您重復該操作:

    (*^13)\1@

    您還可以使用此方法來替換表格中的重復行。要做到這一點,請首先刪除合并的單元格,然后為表格排序以相鄰放置重復單元格。接著,請將您的表格轉換成文本。(在**“表格”菜單上,指向“轉換”,然后單擊“表格到文本”**;出現提示時,使用制表符分隔符。)完成替換后,請將文本重新轉換成表格。

    更多示例

    **

    或者,您可以查找兩個或三個相同段落:

    (*^13){2,3}

    您還可以查找兩個或更多相同段落:

    (*^13){2,}

    可以使用以下字符串替換這些表達式中的任意一個:

    \1

    此外,您可以在必要時重復查找和替換操作,以便替換您文檔中的全部重復段落,或者您可以添加 @ 通配符,讓表達式為您重復該操作:

    (*^13)\1@

    您還可以使用此方法來替換表格中的重復行。要做到這一點,請首先刪除合并的單元格,然后為表格排序以相鄰放置重復單元格。接著,請將您的表格轉換成文本。(在**“表格”菜單上,指向“轉換”,然后單擊“表格到文本”**;出現提示時,使用制表符分隔符。)完成替換后,請將文本重新轉換成表格。

    更多示例

    要了解更多如何在 Word 中使用正則表達式的示例,請參閱 MVP FAQ 網站上的使用通配符查找和替換字符。

    總結

    以上是生活随笔為你收集整理的word中使用正则表达式进行查找和替换的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。