REGEX.EXTRACT

REGEX.EXTRACT 函數會傳回來源字串中指定的比對常規表示式中的相符項目或擷取群組。

REGEX.EXTRACT(來源字串, 規則表示式字串, 符合次數, 擷取群組次數)

來源字串: 用來比對的字串值。

規則表示式字串: 表示規則表示式的字串值,用來比對來源字串

符合次數: 如果有多個符合項目,可選填一個整數,表示應傳回哪一個符合項目。 可接受負值整數並允許向後取用符合項目,因此 -1 是最後的符合項目,以此類推。若指定為 0,則會傳回所有符合項目的陣列。若省略,則會傳回第一個符合項目。

擷取群組次數: 如果常規表示式中有擷取群組,可選填一個整數,表示符合項目中應傳回哪一個擷取群組。 不接受負數值。若指定為 0,則會傳回所有擷取群組的陣列。若省略,則會傳回整個符合項目。

附註

  • 規則表示式字串必須遵守 ICU 標準。

範例

如果你有資料無法輕易符合試算表的橫列和直欄範圍,可使用 REGEX.EXTRACT 加以簡化。例如,下表中的資料結構都相同,但很難手動將資料分隔到每個檢閱畫面的多個輸入格中。

A

1

使用者評論

2

電子郵件信箱:jtalma@icloud.com 姓名:Julie Talma 日期:2021/05/17

3

電子郵件信箱:danny_rico@icloud.com 姓名:Danny Rico 日期:2021/06/02

為修正此問題,你可以在表格中為「姓名」、「電子郵件」、「評分」和「日期」新增更多直欄,然後使用 REGEX.EXTRACT 尋找需要的資料並傳回輸入格中。

例如,你可以輸入下列公式以傳回姓名:

公式編輯器顯示公式 =REGEX.EXTRACT(A2,"(?<=姓名: )(.*)(?= 日期)"。

這個公式中使用了以下引數:

  • 來源字串:A2,這個輸入格包含你想搜尋姓名的資料。

  • 規則表示式字串:"(?<=姓名: )(.*)(?= 日期)" 這個規則表示式會搜尋 "姓名:" 和"日期" 字串之間的文字。

你可將來源字串變更為符合包含使用者評論資訊的其他輸入格,為資料的每一列重複執行此公式,藉此傳回有回答問卷的所有人姓名。

為修正此問題,你可以在表格中為「姓名」、「電子郵件」、「評分」和「日期」新增更多直欄,然後使用 REGEX.EXTRACT 尋找需要的資料並傳回輸入格中。

例如,你可以輸入下列公式:

「公式編輯器」顯示公式 =REGEX.EXTRACT(A2,"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}")

這個公式中使用了以下引數:

  • 來源字串:A2,這個輸入格包含你想搜尋電子郵件信箱的資料。

  • 規則表示式字串:「[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}」這個規則表示式會搜尋電子郵件地址模式。

使用符合次數辨識列表中的資料

有時你的資料可能會像下表(標題為「供應商」)一樣,將值集中在一個輸入格中:

供應商

項目

A

扁豆, 鷹嘴豆, 皇帝豆

B

蘋果, 柳橙, 檸檬

C

藜麥, 米, 奇亞籽

若要根據分數和等級將值分隔,你可以先建立一個新表格,例如下表:

A

B

C

D

1

Rank

A

B

C

2

1

3

2

4

3

若要傳回「扁豆」(供應商 A 等級最高的項目),你可以在新表格的輸入格 B2 中使用類似這個公式,以傳回「扁豆」(供應商 A 等級最高的項目):

「公式編輯器」顯示公式 =REGEX.EXTRACT(供應商::B2,"\w+",ROW(A2)-1)。

這個公式中使用了以下引數:

  • 來源字串:供應商::B2,這個輸入格包含你想搜尋的資料。在此情況下,需在此輸入格中搜尋列表。

  • 規則表示式字串:"\w+" 規則表示式會搜尋字詞。

  • 符合次數:ROW(A2)-1。在此情況下,每個 REGEX.EXTRACT 有 3 個符合項目,你可以使用另一個函數(例如 ROW)設定需要的具體符合項目。ROW(A2) 傳回所選輸入格 (2) 的橫列編號,且包含 -1 以從結果中減去標題列;若不這麼做,在此範例中會傳回「鷹嘴豆」(第二個符合項目)。

    若省略符合次數,每個供應商的結果一律為傳回的第一個字詞(供應商 A 是「扁豆」,供應商 B 是「蘋果」,以此類推)。

你可輕鬆修改上方公式,為其他供應商和其他項目完成表格。

  • 若要傳回單一供應商的其他暢銷產品,你可以修改符合次數。例如,若要傳回「鷹嘴豆」(供應商 A 第二暢銷的品項),你可以將符合次數中的輸入格參照從 A2 更改為 A3。

  • 若要傳回另一個供應商的值,你可以修改來源字串。例如,若要傳回「蘋果」(供應商 B 最暢銷的品項),你可以將來源字串中的輸入格參照從 B2 更改為 B3。

其他範例

讓 A1 等於 "marina@example.com john@example.ca mike@example.de"。

=REGEX.EXTRACT(A1, "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})") 會傳回「marina@example.com」。

=REGEX.EXTRACT(A1, "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})", 2) 會傳回「john@example.ca」。

=REGEX.EXTRACT(A1, "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})", -1) 會傳回「mikeexample.de」。

=REGEX.EXTRACT(A1, "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})", 1, 1) 會傳回「marina」。

=REGEX.EXTRACT(A1, "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})", 2, 2) 會傳回「example.ca」。

也請參閱REGEX
Morty Proxy This is a proxified and sanitized view of the page, visit original site.
有幫助?
字元限制: 250
最大字元限制為 250。
感謝您的寶貴意見。
Morty Proxy This is a proxified and sanitized view of the page, visit original site.