首页 > 解决方案 > 从另一个正则表达式模式中提取模式中的字符串:REGEX (Replace, Extract $1)

问题描述

如何从另一个正则表达式模式中提取模式中的字符串示例:

REGEXREPLACE("Ex.: <a;b;c;> e <d;e;>.","<(.*?)>","($1)...")

要得到

Ex: (a)(b)(c) e (d)(e).

标签: regexgoogle-sheets

解决方案


建议:

您可以尝试嵌套REGEXREPLACE函数,然后SUBSTITUTE在最后使用如下示例:

=SUBSTITUTE(REGEXREPLACE
           (REGEXREPLACE
           (REGEXREPLACE
           ("<a;b;c;> e <d;e;>.", "<(.*?)>", "($1)"),
            "[^a-z()> .a-z]", ")*("),
            "[^a-z()> .a-z]",""),
           "()","")

示例演示

样本字符串在单元格上A2

在此处输入图像描述

这个怎么运作:

  1. 使用你原来的正则表达式:

例如放置在单元格上A2

=REGEXREPLACE("<a;b;c;> e <d;e;>.", "<(.*?)>", "($1)")

结果:(a;b;c;) e (d;e;).

  1. 替换;)*(

=REGEXREPLACE(A2, "[^a-z()> .a-z]", ")*(")

结果:(a)*(b)*(c)*() e (d)*(e)*().

  1. 删除星号(*)符号:

=REGEXREPLACE(B2,"[^a-z()> .a-z]","")

结果:(a)(b)(c)() e (d)(e)().

  1. ()使用[SUBSTITUTE][2]函数替换空:

=SUBSTITUTE(C2,"()","")

结果:(a)(b)(c) e (d)(e).

参考:

Google表格公式中的多个正则表达式匹配


推荐阅读