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

Doubling the number of apostrophes in a string Matlab

假设程序的自动输入是:

str = 'John's dog is called Ace'

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

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

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

在 Matlab 中最好和最有效的方法是什么?我问这个问题是因为我知道 matlab 有许多函数可以简化这些任务并且不一定总是需要整个字符串遍历(在很长的字符串中特别有用)。有什么帮助吗?

一种选择是使用 strrep:

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

ans =

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

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

您可以将 ' 替换为 char(39),这可能会导致较少的错误问题,但会增加可读性。

我还添加了一对引号以确保其有效,并且有趣的是,这导致命令中包含 18 个单引号。无论如何,这对我来说是个人最好的。

您也可以使用 regexprep

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