如何使用regexreplace来比较谷歌工作表中的两段文本



我想比较两段代码,并用省略号替换相同的位-基本上,类似于:

=Regexreplace(A1,JOIN("|",SPLIT(B1,",")),"...")

当我用这个公式来比较"帮帮我,求求你,帮帮我"one_answers"帮帮我"时,我得到了"。。。,胡威泽,。。。"

但当我使用它比较两个公式(作为文本)时,说:

"=IFERROR(COUNTIF({" & JOIN( "," ,C8:C12) & "},""√ Yes"")/SUM(COUNTIF({" & JOIN( "," ,C8:C12) & "},""√ Yes""),COUNTIF({" & JOIN( "," ,C8:C12) & "},""x No""),COUNTIF({" & JOIN( "," ,C8:C12) & "},""≈ Don't Know"")),0)"

带有:

="=IFERROR(COUNTIF({" & JOIN( "," ,C8:C12) & "},""√ Yes"")/SUM(COUNTIF({" & JOIN( "," ,C8:C12) & "},""√ Yes""),COUNTIF({" & JOIN( "," ,C8:C12) & "},""x No""),COUNTIF({" & JOIN( "," ,C8:C12) & "},""≈ Don't Know"")),0)"

我得到的回报只是第二个公式。

(附言:对于我的工作环境,我将此代码与关系指针一起使用,而不是"A1"one_answers"A2")

=Regexreplace(=INDIRECT("R"&ROW()&"C"&COLUMN()-1,FALSE),JOIN("|",SPLIT(=INDIRECT("R"&ROW()&"C"&COLUMN()-2,FALSE),",")),"...")

我发现在正则表达式中不能使用特殊字符

有12个字符具有特殊含义:

  • 反斜杠

  • 插入符号^

  • 美元符号$

  • 周期或点.

  • 竖条或竖线符号|

  • 问号?

  • 星号或星号*

  • 加号+

  • 左括号(

  • 右括号)

  • 以及开口方括号CCD_ 11、

  • 左大括号{

如果您想将这些字符中的任何一个用作正则表达式中的文字,你需要用一个反斜杠来转义它们。

在您的情况下,至少有两种:()


转义特殊字符

要做到这一点,请使用以下公式:

=REGEXREPLACE(B2,"((|))","\$1")

您可以在regular_expression:中添加更多字符

  • ((|)|*|{|})

最终公式为:

=Regexreplace(A2,JOIN("|",SPLIT(REGEXREPLACE(B2,"((|))","\$1"),",")),"...")

最新更新