OpenRefine中是否有简便方法替换重音字符?
OpenRefine中简便替换重音字符的方法
当然有更高效的方法,不用逐个字符写replace:
直接用Unicode规范化+正则替换的组合公式,一次性处理所有重音字符:
value.normalize('NFKD').replace(/[\u0300-\u036f]/g, '')
原理说明:
normalize('NFKD')会把带重音的字符(比如á、Í、ó)分解成基础字符+独立的重音标记(比如á拆成a+´)- 正则
/[\u0300-\u036f]/g匹配所有Unicode范围内的重音标记字符,用空字符串替换就相当于去掉重音,只保留基础字符
对比你原来的写法:
你之前的公式需要逐个指定重音字符替换,不仅繁琐,还容易漏处理其他重音(比如é、ú、ñ这类),而且你写的replace("Í", "Í")其实等于没做替换,应该是要换成"I"吧?用上面的公式就能一次性搞定所有这类转换,不用重复写一堆replace。
如果只是需要替换某几个特定的重音字符,你原来的方法没问题,但要是批量处理所有带重音的字符,这个正则方法绝对是更简便的选择。
内容的提问来源于stack exchange,提问作者UEAC
相关产品推荐
相关产品推荐

