String 字符串中撇号的数目加倍

String 字符串中撇号的数目加倍,string,matlab,apostrophe,String,Matlab,Apostrophe,假设程序的自动输入为: str = 'John's dog is called Ace' 我希望在找到单个撇号时自动重新创建字符串以包含另一个撇号(因为单个撇号“打断”字符串): 请注意,这必须自动完成,即通过某种功能完成。我不能手动插入一个新字符 在Matlab中实现这一点的最佳和最有效的方法是什么?我问这个问题是因为我知道matlab有很多函数可以简化这些任务,并且不一定总是需要遍历整个字符串(特别是在非常长的字符串中)。任何类型的帮助?一个选项是使用strep: strrep('John

假设程序的自动输入为:

str = 'John's dog is called Ace'
我希望在找到单个撇号时自动重新创建字符串以包含另一个撇号(因为单个撇号“打断”字符串):

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


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

一个选项是使用
strep

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

ans =

John''s dog''''s called Ace
在示例中,由于转义,它看起来很奇怪,所以如果您希望它可读,它可能不是一个很好的选择

您可以用char(39)替换
,这可能会减少错误问题,但增加可读性


我还添加了一对引号,以确保其工作正常,有趣的是,这将生成一个包含18个单引号的命令。无论如何,这是我个人的最佳选择。

一个选择是使用
strep

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

ans =

John''s dog''''s called Ace
在示例中,由于转义,它看起来很奇怪,所以如果您希望它可读,它可能不是一个很好的选择

您可以用char(39)替换
,这可能会减少错误问题,但增加可读性


我还添加了一对引号,以确保其工作正常,有趣的是,这将生成一个包含18个单引号的命令。无论如何,这是我个人的最佳选择。

你也可以使用
regexprep

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

您也可以使用
regexprep

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

如果str中没有撇号会发生什么?原始字符串将原封不动地返回。完美。我可以给你发一条消息,单独问你一个关于matlab指南的问题吗?只要问一个关于SO的新问题,我可能就是其中之一没关系,这个问题我已经问了一百万次了,但从来没有得到一个能解决我问题的答案。不过还是要感谢这个:)如果str中没有撇号会发生什么?原始字符串将原封不动地返回。完美。我可以给你发一条消息,单独问你一个关于matlab指南的问题吗?只要问一个关于SO的新问题,我可能就是其中之一没关系,这个问题我已经问了一百万次了,但从来没有得到一个能解决我问题的答案。不过还是要感谢你的这一次:)