从字符串 Swift/SwiftUI 中修剪子字符串

发布于 2025-01-10 17:07:34 字数 367 浏览 0 评论 0原文

假设我有以下字符串:

"Chest Stretch (left)"
"Chest Stretch (right)"

如何使用 SwiftUI 仅输出:

"Chest Stretch"

我认为这可能是 swift - 字符串中的子字符串

但是,我正在寻找一种方法在 if 条件表达式中的 var body: some View 内执行此操作。

Let's say I have the following strings:

"Chest Stretch (left)"
"Chest Stretch (right)"

How can I use SwiftUI to output only:

"Chest Stretch"

I thought this may be a possible duplicate of swift - substring from string.

However, I am seeking a way to do this inside var body: some View within an if conditional expression.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦忆晨望 2025-01-17 17:07:34

一种可能的方法是正则表达式

let string = "Chest Stretch (left)"
let trimmedString = string.replacingOccurrences(of: "\\s\\([^)]+\\)", with: "", options: .regularExpression)

找到的模式将被替换为空字符串。

模式为:

  • 一个空白字符 \\s
  • 一个左括号 \\(
  • 一个或多个不是右括号的字符 [^)]+
  • 和右括号 \\)

或者更简单,如果分隔符始终是左括号

let trimmedString = String(string.prefix(while: {$0 != "("}).dropLast())

或者

let trimmedString = string.components(separatedBy: " (").first!

A possible way is Regular Expression

let string = "Chest Stretch (left)"
let trimmedString = string.replacingOccurrences(of: "\\s\\([^)]+\\)", with: "", options: .regularExpression)

The found pattern will be replaced with an empty string.

The pattern is:

  • One whitespace character \\s
  • An opening parenthesis \\(
  • One or more characters which are not a closing parentheses [^)]+
  • and a closing parenthesis \\)

Or simpler if the delimiter character is always the opening parenthesis

let trimmedString = String(string.prefix(while: {$0 != "("}).dropLast())

Or

let trimmedString = string.components(separatedBy: " (").first!
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文