string - 用等价物替换特殊字符

标签 string matlab replace diacritics

如何用等价的特殊字符替换以下特殊字符?

元音:分别由 AEIOUaeiou 编写的 ÁÉÍÓÚáéíóú。和 N 的字母 Ñ。

表达式:

str = regexprep(str,'[^a-zA-Z]','');

将删除所有不在字母表中的字符,但如何替换为如上所示的等效字符?

谢谢

最佳答案

您可以编写一系列正则表达式,例如:

s = regexprep(s,'(?:À|Á|Â|Ã|Ä|Å)','A')
s = regexprep(s,'(?:Ì|Í|Î|Ï)','I')

其余的重音字符依此类推......(大写/小写)

警告:有太多variations即使对于拉丁字母表的一小部分


一个更简单的例子:

chars_old = 'ÁÉÍÓÚáéíóú';
chars_new = 'AEIOUaeiou';

str = 'Ámró';
[tf,loc] = ismember(str, chars_old);
str(tf) = chars_new( loc(tf) )

之前的字符串:

>> str
str =
Ámró

之后:

>> str
str =
Amro

关于string - 用等价物替换特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12771592/

相关文章:

c++ - C++ 中的字符串和整数连接

c - 复制没有空格的字符串时内存访问错误

ruby - 命令行Matlab中的vi输入模式?

替换为向量

html - 如何在 HTML 标签之外匹配 RegExp

c# - 在 if 语句中实现字符串和 OR 函数 (||)

matlab - 多维数据存储和插值

Matlab warning ('error' ) produces not enough arguments 错误

linux - 链接两个参数 - Shell 脚本

javascript - 抓取字符串中从字符串末尾到第一次出现的数据