假设 prefix={mr,ms}
和 suffix={junior,senior}
。
我希望在指定的前缀之后和指定的后缀之前添加一个连字符。
个人而言,我可以做一些类似 =REGEXREPLACE(A1,"mr","mr-")
和 =REGEXREPLACE(A1,"senior","-senior")
的事情,但是有没有办法用一个公式来完成上述所有事情?
答案 0 :(得分:2)
您可以使用捕获组来简化这一过程。这里有两个嵌套替换,一个用于 ms
和 mr
情况,一个用于 junior
和 senior
情况:
=REGEXREPLACE(REGEXREPLACE(A38,"^(mr|ms)","$1-"),"(junior|senior)$","-$1")
解释"^(mr|ms)"
:
^
- 字符串的开始(这样可以避免错误命中,例如 msmiriamreich)(mr|ms)
- 使用所有前缀的 ORed 组合捕获组$1
引用捕获组解释"(junior|senior)$"
:
(junior|senior)
- 使用所有后缀的 ORed 组合捕获组$
- 字符串结束$1
引用捕获组将两个正则表达式塞入一个是可能的,但您会得到一个相当长的正则表达式,因为您必须考虑(带/不带前缀)和(带/不带后缀)的排列。