REGEXREPLACE 函数

应用对象
Microsoft 365 专属 Excel Microsoft 365 Mac 版专属 Excel

REGEXREPLACE 函数允许您根据提供的正则表达式 (“regex”) 将字符串中的文本替换为另一个字符串。

语法

REGEXREPLACE 函数将所提供的文本中与模式匹配的字符串替换为替换

REGEXEXTRACT 函数的语法为:

REGEXREPLACE (text, pattern, replacement, [occurrence], [case_sensitivity])

参数 说明
text
(必需)
文本或对包含要在其中替换字符串的文本的单元格的引用。
模式
(必需)
描述要替换的文本模式的正则表达式 (“regex”) 。
替换
(必需)
要替换 模式实例的文本。
次数 指定要替换的模式实例。 默认情况下,出现率为 0,这将替换所有实例。 负数替换该实例,从末尾搜索。
case_sensitivity 确定匹配是否区分大小写。 默认情况下,匹配区分大小写。 输入以下内容之一:
0: 区分大小写
1: 不区分大小写

注意

编写正则表达式模式时,可以使用与各种字符匹配的称为“令牌”的符号。 下面是一些简单的令牌供参考:

  • “[0-9]”:任何数字
  • “[a-z]”:A 到 Z 范围内的字符
  • “.”: 任何字符
  • “a”:“a”字符
  • “a*”:零个或多个“a”
  • “a+”:一个或多个“a”
  • 此函数的所有正则表达式以及 REGEXTESTREGEXEXTRACT 都使用 正则表达式的 PCRE2“风格”。
  • REGEXEXTRACT 始终返回文本值。 可以使用 VALUE 函数将这些结果转换回数字。

示例

复制示例数据,然后将其粘贴进新的 Excel 工作表的 A1 单元格中。 如果需要,可调整列宽以查看所有数据。

示例 1

使用 REGEXREPLACE 通过将电话号码的前 3 位替换为 ***、使用模式来匿名化电话号码

"[0-9]+-"

数据
索尼娅·里斯 (378) 555-4195
Angel Brown (878) 555-8622
Blake Martin (437) 555-8987
威廉·柯比 (619) 555-4212
Avery Smith (579) 555-5658
Parker Jones (346) 555-0925
Liam Small (405) 555-0887
霍莉·里斯 (666) 555-1872
公式
=REGEXREPLACE (A2,“[0-9]+-”,“***-”)

下图演示了结果。 需要在单元格 A4 上自动换行以显示结果中的换行符。

使用 REGEXREPLACE 将混合文本中每个电话号码的前三位替换为 *,使用模式 [0-9]+-

示例 2

使用 REGEXREPLACE 和捕获组来分隔和重新排序给定姓名和姓氏,使用模式:“ ([A-Z][a-z]+) ([A-Z][a-z]+) ”;和替换:“$2,$1”。

注意: 捕获组在带括号“ () ”的 模式 中定义,并且可以在 替换 时引用为“$n”。 在此示例中,$1 和 $2 分别引用第一个和第二个捕获组。

数据
SoniaBrown
公式
=REGEXREPLACE (A2,“ ([A-Z][a-z]+) ([A-Z][a-z]+) ”,“$2, $1”)

下图演示了这些结果。

将 REGEXREPLACE 与捕获组一起使用,以分隔和重新排序给定姓名和姓氏,使用模式: ([A-Z][a-z]+)  ([A-Z][a-z]+) 和替换:$2,$1