文本內容查找公式「正則表達式」的基本概念


翻譯简体中文繁體中文更新於2025-04-23 15:24


「正則表達式」是專用於在一段文本內容中「查找」關鍵字的公式,與數學公式類似,比常見的「通配符」強大一萬倍。 如果大家使用過或了解過「通配符」,那學習「正則表達式」也不是一件難事!

image-文本內容查找公式「正則表達式」的基本概念

視頻講解

https://www.bilibili.com/video/BV1Z34y147W6

正則表達式的作用

在文本「內容」中查找「關鍵字」,和我們使用最多的 Ctrl F 類似。

關於「內容」的定義

也就是我們日常理解的「記事本文件中的內容」,「內容」不能是圖片或視頻。 另外,常見的 txt 文件格式的記事本只是記事本文件的一種,還有很多記事本文件,只是擴展名不一樣而已。

我們需要將一個文本「內容」看成兩部分:

1、組成「內容」的所有「文本」

2、文本與文本之間的邊界,也稱之為「位置」

什麼是文本?

以下內容都是文本:

  • 肉眼看得見的文字或標點符號
  • 肉眼看不見的空白,包含空格、換行符、tab 鍵等

舉例:

文本「abcde」與文本「a bc d e」是兩個不同的文本,千萬不要認為中間的空格肉眼看不到,就認為計算機會忽略處理,計算機中的所有處理邏輯就是數學計算邏輯,任何的條件特徵都會成為影響結果的重要因素。

什麼是位置?

位置就是單個文本與單個文本的分界線。

舉例:

文本「abcde」共有 6 個位置,這 6 個位置是:1a2b3c4d5e6

正則表達式可以查找到什麼?

既然「內容」是由「文本」和「位置」組成,因此正則表達式可以查找到的「關鍵字」可以是:文本、位置、文本和位置的組合。

舉例:

現有內容「地球是圓的」:

1、當我們查找的文本是「圓」字時,其實也相當於同時查找了:圓字左側的位置 圓字本身 圓字右側的位置

2、當我們查找的位置是「地」字右側的位置時,相當於我們將鼠標的光標放到了文本「地」和文本「球」的中間位置

查找的方向

和我們閱讀一段文字的方向一樣,正則表達式是「從左往右」進行「關鍵字」的查找。

查找的方式

查找固定的文本

也就是我們日常說的「精確查找」,即我們輸入什麼就查找什麼,查找到的內容與我們輸入的內容完全一樣,一字不差。

示例:今年是 2022 年,明年是 2023 年。

  • 當我們查找的文本是「2022」時,可以正確查找到。
  • 當我們查找的文本是「2008」時,不可以查找到。

查找動態有規律的文本

也就是我們日常說的「模糊查找」,即我們輸入的只是一個公式,這個公式可以匹配到多個內容。

示例:今年是 2022 年,明年是 2023 年。

  • 當我們查找的公式是「\d 」,可以正確查找到:2022、2023
  • 當我們查找的公式是「8\d 」,不可以查找到,原因是示例內容中沒有以數字 8 開頭的數字

寫一個公式(正則表達式)的完整步驟

示例:現在是8點50,我在19:30有個會議。

第一步、列出我們想要查找到的內容:

8點50、19:30

第二步、找出它們的規律,並用一句完整的話進行總結:

可以看到我們要查找到的內容的規律是:一位或兩位數字後面跟一個漢字「點」或跟一個英文冒號「:」,然後是兩位數字。

第三步、寫出公式:

  • 如果懂正則的基本語法,則我們很快就可以寫出公式為:\d{1,2}[點:]\d{2}
  • 如果不懂正則的基本語法,則我們可以使用「我的ABC軟體工具箱」中的「正則表達式可視化生成器」來自動生成,具體操作教程看這裡:https://www.wodeabc.com/article/show/8002295

常見問題

我理解此文的概念,但我不知道正則表達式的具體語法,怎麼辦?

只要您完全理解了本文的所有概念,從此以後根本不用學習正則表達式的具體語法,您完全可以只使用「我的ABC軟體工具箱」中的「正則表達式可視化生成器」來自動生成。

具體教程看這裡:https://www.wodeabc.com/article/show/8002295

為什麼不使用 glob 通配符?

因為 glob 通配符一般用於查找文件名與路徑相關的場景中,而且正則表達式本身就有相應的通配符,想怎麼匹配就怎麼匹配,強大的不得了。

為什麼查找不成功?

檢查實際內容中是否有空格、換行符等肉眼看不見的內容,從而導致自己在寫正則表達式時忽略掉了

我們使用的是哪個版本的正則表達式引擎?

微軟的 . NET 正則表達式引擎


聲明:網站中的圖文、視頻等內容均僅限於製作該內容時所使用的軟件版本和操作環境,如後續因產品更新導致您的操作與網站上的內容不一致請以實際為準!

相關文章

更多文章