说来自程序的自动输入是:
str = 'John's dog is called Ace'
我想自动重新创建字符串以包含另一个撇号,只要找到一个撇号(作为单个撇号"中断"字符串):
newstr = 'John''s dog is called Ace'
请注意,这必须自动完成,即通过某种功能。我不能手动插入一个新字符。
在Matlab中执行此操作的最佳和最有效的方法是什么?我问的问题是因为我知道matlab有许多功能可以简化这些任务,并不一定总是需要整个字符串遍历(特别适用于非常长的字符串)。任何形式的帮助?
答案 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, '''', '''''' )