加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 06:00:33 所属栏目:百科 来源:网络整理
导读:我正在尝试为Google表格编写一个公式,它会将带有变音符号的Unicode字符转换为纯ASCII等效字符. 我在其“REGEXREPLACE”功能中看到了Google uses RE2.我看到了RE2 offers Unicode character classes. 我试着写一个公式(类似于this one): REGEXREPLACE("públ
我正在尝试为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,在谷歌工作表.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读