REGEXREPLACE 函式允許你根據提供的正則表達式 (「regex」) ,將字串中的文字替換成另一個字串。
語法
REGEXREPLACE 函式會替換所提供文字中與模式相符的字串。
REGEXEXTRACT 函式的語法如下:
REGEXREPLACE (文字、模式、替換、[出現]、[case_sensitivity])
| 引數 | 描述 |
|---|---|
|
text (必要) |
你想替換字串的文字或指向包含文字的儲存格的參考。 |
|
圖樣 (必要) |
正則表達式 (「正則表達式」) 描述你想替換的文字模式。 |
|
替代 (必要) |
你想用來取代 模式實例的文字。 |
| 產地 | 指定你想替換哪個圖案實例。 預設情況下,出現次數為 0,會取代所有實例。 一個負數取代該實例,從末端搜尋。 |
| case_sensitivity | 判斷匹配是否區分大小寫。 預設情況下,匹配是區分大小寫的。 請輸入下列其中一項: 0: 大小寫區分 1: 大小寫不區分 |
注意
在撰寫正則表達式模式時,可以使用稱為「tokens」的符號,這些符號可以與多種字元相匹配。 以下是一些簡單的標記供參考:
- 「[0-9]」:任意數字
- 「[a-z]」:位於 A 到 Z 範圍內的字元
- 「.」:任何字元
- 「A」:A字元
- 「a*」:零個或多個「a」
- 「A+」:一個或多個「A」
- 所有此函數的正則表達式,以及 REGEXTEST 和 REGEXEXTRACT ,都使用 PCRE2 的「正則表達式」風味。
- REGEXEXTRACT 總是回傳文字值。 你可以用 VALUE 函數將這些結果轉換回數字。
範例
複製範例資料,並將其貼到新 Excel 工作表的儲存格 A1 中。 如有需要,您可以調整欄寬來查看所有資料。
範例 1
使用 REGEXREPLACE 將電話號碼前三位數字替換為 ***,並使用模式來匿名化
"[0-9]+-"
| 資料 |
|---|
| 索尼婭·里斯 (378) 555-4195 安吉爾·布朗 (878) 555-8622 布雷克·馬丁 (437) 555-8987 威廉·柯比 (619) 555-4212 艾弗里·史密斯 (579) 555-5658 帕克·瓊斯 (346) 555-0925 利亞姆·斯莫爾 (405) 555-0887 霍莉·里斯 (666) 555-1872 |
| 公式 |
| =正則替代 (A2,“[0-9]+-”,“***-”) |
以下圖示展示了結果。 你需要在 A4 儲存格上換行,這樣才能顯示結果中的換行。
範例 2
使用 REGEXREPLACE 與擷取群組來分離並重新排序名字與姓氏,模式為:「 ([A-Z][a-z]+) ([A-Z][a-z]+) “;替換:「$2, $1」。
註: 捕獲群以 括 號「 () 」定義,並可 替換 為「$n」。 在這個例子中,$1和$2分別代表第一組和第二組吃子。
| 資料 |
|---|
| 索尼婭·布朗 |
| 公式 |
| =REGEXREPLACE (A2,“ ([A-Z][a-z]+) ([A-Z][a-z]+) ”,“$2, $1”) |
下圖顯示結果。