2015-05-28 2 views
0

Произнесите автоматический ввод из программы:Удвоение количества апостроф в строке Matlab

str = 'John's dog is called Ace' 

Я хочу, чтобы автоматически повторно создать строку, чтобы содержать другой апостроф, когда обнаруживается один апостроф (как один апостроф «ломает» строка):

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

Обратите внимание, что это должно быть сделано автоматически, то есть через какое-то функция. Я не могу просто вставить новый символ вручную.

Каков наилучший и эффективный способ сделать это в Matlab? Я задаю вопрос, потому что я знаю, что у Matlab есть много функций, которые облегчают эти задачи и не обязательно всегда нуждаются в обходных цепочках (особенно полезно в очень длинных строках). любая помощь?

ответ

3

Вы также можете использовать regexprep

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

что произойдет, если нет апострофа ул? –

+0

Исходная строка возвращается без изменений. – matlabgui

+0

безупречный. я мог бы, возможно, послать вам сообщение где-нибудь, чтобы задать вам отдельный вопрос о руководстве Matlab? –

3

Одним из вариантов было бы использовать strrep:

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

ans = 

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

Это выглядит странно в примере из-за побега, поэтому он не может быть хорошим выбором, если вы хотите, чтобы быть читаемым.

Вы можете заменить ' на символ (39), что может вызвать меньше проблем с ошибками, но более с читабельностью.

Я также добавил пару кавычек, чтобы убедиться, что это сработало и, весело, это приводит к команде с 18 одинарными кавычками в ней. Это личное для меня все равно.

Смежные вопросы