在指定的前缀和后缀之间添加连字符

时间:2021-03-09 18:53:16

标签: regex google-sheets

enter image description here

假设 prefix={mr,ms}suffix={junior,senior}

我希望在指定的前缀之后和指定的后缀之前添加一个连字符。

个人而言,我可以做一些类似 =REGEXREPLACE(A1,"mr","mr-")=REGEXREPLACE(A1,"senior","-senior") 的事情,但是有没有办法用一个公式来完成上述所有事情?

1 个答案:

答案 0 :(得分:2)

您可以使用捕获组来简化这一过程。这里有两个嵌套替换,一个用于 msmr 情况,一个用于 juniorsenior 情况:

=REGEXREPLACE(REGEXREPLACE(A38,"^(mr|ms)","$1-"),"(junior|senior)$","-$1")

解释"^(mr|ms)"

  • ^ - 字符串的开始(这样可以避免错误命中,例如 msmiriamreich)
  • (mr|ms) - 使用所有前缀的 ORed 组合捕获组
  • 使用 $1 引用捕获组

解释"(junior|senior)$"

  • (junior|senior) - 使用所有后缀的 ORed 组合捕获组
  • $ - 字符串结束
  • 使用 $1 引用捕获组

将两个正则表达式塞入一个是可能的,但您会得到一个相当长的正则表达式,因为您必须考虑(带/不带前缀)和(带/不带后缀)的排列。

相关问题