正则表达式 – 如何在Google表格中规范化/归化Unicode字符?

前端之家收集整理的这篇文章主要介绍了正则表达式 – 如何在Google表格中规范化/归化Unicode字符?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试为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),但这看起来非常糟糕.

是否可以提供更好的方法来建议使用Google表格公式中的带有变音/重音标记的Unicode字母标准化?

解决方法

[[:^ 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,在谷歌工作表.

猜你在找的正则表达式相关文章