在字符串Matlab中加倍撇号的数量

时间:2015-05-28 12:26:09

标签: string matlab apostrophe

说来自程序的自动输入是:

str = 'John's dog is called Ace'

我想自动重新创建字符串以包含另一个撇号,只要找到一个撇号(作为单个撇号"中断"字符串):

newstr = 'John''s dog is called Ace'

请注意,这必须自动完成,即通过某种功能。我不能手动插入一个新字符。

在Matlab中执行此操作的最佳和最有效的方法是什么?我问的问题是因为我知道matlab有许多功能可以简化这些任务,并不一定总是需要整个字符串遍历(特别适用于非常长的字符串)。任何形式的帮助?

2 个答案:

答案 0 :(得分:3)

一种选择是使用strrep

strrep('John''s dog''''s called Ace', '''', '''''')

ans =

John''s dog''''s called Ace

由于转义,它在示例中看起来很奇怪,因此如果您希望它可读,它可能不太合适。

您可以使用char(39)替换',这可能会导致错误问题减少,但可读性更高。

我还添加了一对引号,以确保它有效,并且非常有趣,这会产生一个包含18个单引号的命令。无论如何,这对我来说是个人最好的。

答案 1 :(得分:3)

您也可以使用regexprep

newStr = regexprep ( str, '''', '''''' )