matlab - 替换字符串中的坏字符 Matlab
问题描述
我尝试创建一个在参数中采用 char 的函数:
function replaceBadCharacters(name)
BadChar = '<>:"/\|?*';
bad = ismember(BadChar, name);
if contains(name, ' ') || any(BadChar)
name = strrep(name, ' ', '_');
name = strrep(name, BadChar(bad), '_');
end
end
我想从 char中替换space
and并将其替换为. 但是我的功能不起作用。BadChar
_
例如我有一个字符Manager principal
或者Manager/principal
我想把它改成Manager_principal
感谢您的帮助。
解决方案
编辑:如gehbiszumeis 的回答中所述,实际问题是缺少返回值。我很抱歉没有一开始就指出这一点。
您的功能可以简化为:
function name = replaceBadCharacters(name)
BadChar = '<>:"/\|?* ';
bad = ismember(name, BadChar);
name(bad) = '_';
end
您可以简单地将“空格”添加到您的BadChar
char 数组中。另外,请查看Indexing with Logical Values。
一些测试:
>> replaceBadCharacters('Manager principal')
ans = Manager_principal
>> replaceBadCharacters('Manager/principal')
ans = Manager_principal
>> replaceBadCharacters('Manager?principal')
ans = Manager_principal
推荐阅读
- python - 如何按第二个元组元素对元组列表进行排序?
- python-3.x - Is it possible to read parquet files from S3 access point using pyarrow
- python - 在数组中找到最接近零的数字
- visual-studio - 如何处理 Nuget 依赖程序集的相对 HintPath?
- amazon-ec2 - Setting Turn server on EC2
- postgresql - psql命令和psql交互终端的区别
- swift - Modifying SwiftUI Views based on non-binary data / conditions?
- node.js - 无法在 Kubernetes 上使用 Node.Js 连接到 Elasticsearch(证书链中的自签名证书)
- android - openlayers Web 应用程序在移动设备上运行速度非常慢(Android Chrome)
- javascript - How do I change mix up tables to Sequelize?