swift - 屏蔽 Swift 字符串中的字符
问题描述
Swift 5 中是否有一种规范的方法来屏蔽一个 Swift 字符串中不包含(完全匹配)在第二个“屏蔽”字符串中的所有字符?也许使用地图和/或过滤器?
例如 maskString("abcdba", withMask: "ab") -> "abba"
或者
maskString("abcdba", withMask: "ab" , replaceWith: "?") -> "ab??ba"
解决方案
replacingOccurrences
与选项一起使用:
let str = "abcdba"
let result = str.replacingOccurrences(of: "[^ab]", with: "", options: .regularExpression)
print(result) //"abba"
或者你可以定义一个这样的函数:
func maskString (
_ str: String,
withMask mask: String ,
replaceWith replacement: String = ""
) -> String {
return str
.replacingOccurrences(of: "[^\(mask)]",
with: replacement,
options: .regularExpression)
}
并像这样使用它:
maskString("abcdba", withMask: "ab") //"abba"
maskString("abcdba", withMask: "ab" , replaceWith: "?") //"ab??ba"
推荐阅读
- javascript - 使用 Javascript 从 base64 图像数据创建新的响应
- c - 选择排序说明
- java - 无法打开提示目录
- android - 无法在发布模式下构建 Flutter 应用程序,但在调试模式下工作正常
- javascript - 当父级传递新数据或更新数据时重新渲染表格组件
- asp.net-core-3.1 - 使用来自 appsetting 的命名连接时,ASP.NET Core 3.1 Scaffold-DbContext 中的实体框架核心
- azure-devops - 如何在 Azure Devops 中运行 NUnit 测试,而不在每个项目中都有测试适配器?
- node.js - `No "exports" main resolve` 尝试运行 Storybook 时出现错误
- c - 为 UDP 嗅探创建 TUN/TAP 接口
- spring-data-jpa - Spring Data JPA + JpaSpecificationExecutor + NamedEntityGraph