将字符串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, '''', '''''' )
假设程序的自动输入是:
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, '''', '''''' )