我正在尝试为Google表格编写一个公式,它会将带有变音符号的Unicode字符转换为纯ASCII等效字符.
我在其“REGEXREPLACE”功能中看到了Google uses RE2.我看到了RE2 offers Unicode character classes.
我试着写一个公式(类似于this one):
REGEXREPLACE("público","(\pL)\pM*","$1")
但是Sheets会产生以下错误:
Function REGEXREPLACE parameter 2 value “\pL” is not a valid regular expression.
我想我可以编写一个由一组很长的嵌套SUBSTITUTE函数组成的公式(Like this one),但这看起来非常糟糕.
解决方法
[[:^ alpha:]](否定的ASCII字符类)适用于REGEXEXTRACT公式.
但是= REGEXREPLACE(“público”,“([[:alpha:]])[[:^ alpha:]]”,“$1”)给出“pblic”作为结果.所以,我猜,公式不知道确切的ASCII字符必须替换“ú”.
我们来一个públicē这个词;我们需要替换它中的两个符号.将此单词放在单元格A1中,并将此公式放在单元格B1中:
=JOIN("",ArrayFormula(IFERROR(VLOOKUP(SPLIT(REGEXREPLACE(A1,"(.)","$1-"),"-"),D:E,2,0),SPLIT(REGEXREPLACE(A1,"-"))))
然后在范围D:E中创建替换目录:
D E 1 ú u 2 ē e 3 ... ...
这个公式仍然很难看,但更有用,因为您可以通过向表中添加更多字符来控制目录.
或者使用Java Script
也是found a good solution,在谷歌工作表.