2016-02-25 51 views
4

我正在嘗試爲Google表格編寫一個公式,它可以將Unicode字符與變音符號轉換爲它們的純ASCII等價物。如何在Google表格中規範/標註Unicode字符?

我在其「REGEXREPLACE」函數中看到Google uses RE2。我看到那RE2 offers Unicode character classes

我試圖寫(類似於this one)的公式:

REGEXREPLACE("público","(\pL)\pM*","$1") 

但表產生以下錯誤:

Function REGEXREPLACE parameter 2 value "\pL" is not a valid regular expression.

我想我可以寫由長組中的式嵌套SUBSTITUTE函數(Like this one),但這看起來很糟糕。

任何人都可以提供一個更好的方法來標準化谷歌表格公式中帶有變音符/重音符號的Unicode字母的建議嗎?

回答

2

[[:^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,"(.)","$1-"),"-")))) 

然後使替代的目錄範圍d:E:

D E 
1 ú u 
2 ē e 
3 ... ... 

這個公式仍是醜陋,而是因爲更實用您可以通過向表中添加更多字符來控制您的目錄。


或者使用Java腳本

而且found a good solution,這在谷歌工作表。

+0

兩年後,我想我需要接受這個解決方案,但老實說,這些解決方法仍然非常難看。來吧,谷歌,解決這個問題! – Kirkman14

+0

嗨,@ Kirkman14。[此文字功能](https://support.google.com/docs/table/25273?visit_id=1-636546276795993789-3021020026&hl=en&rd=2)是迄今爲止我們所有的。更好的解決方案是在谷歌論壇上編寫自定義函數或[報告問題](https://stackoverflow.com/a/12106694/5372400)。 –