gpt4 book ai didi

ios - 在两个字符之间使用正则表达式选择值

转载 作者:行者123 更新时间:2023-11-28 07:18:38 24 4
gpt4 key购买 nike

我需要正则表达式方面的帮助,我已经添加了一些关于我正在尝试做的工作的 Playground 代码来提供帮助。

如果 key="id"它应该返回:862如果 key="pos"应该返回:-301.5, 61.7, 364.6

我的正则表达式是 var expression = key+"=(.*?)[^,]+" 这有点接近,但不完全是我想要的。

感谢任何帮助!

import UIKit

var data = "0. id=862, pos=(-301.5, 61.7, 364.6), rot=(-7.0, -2735.2, 0.0), remote=True, health=125"
var key = "id"

var expression = key+"=(.*?)[^,]+"
var match = data.range(of: expression, options: .regularExpression);
var value = data.substring(with: match!)
print(value)

最佳答案

您可以使用以下方式匹配字符串

var expression = "(?<=" + key+"=)(?:\\([^()]+\\)|[^,\\s]+)"

参见 regex demo , 它匹配

  • (?<=pos=) - 一个 key其次是 =必须紧接在当前位置之前
  • (?:\([^()]+\)|[^,\s]+) - 匹配
    • \([^()]+\) - 一个 ( , 除 ( 以外的 1+ 个字符和 )然后 )
    • | - 或者
    • [^,\s]+ - 除空格和逗号外的 1+ 个字符。

然后,在获得匹配后,删除尾随的 () :

var value = data.substring(with: match!).trimmingCharacters(in: ["(",")"])

关于ios - 在两个字符之间使用正则表达式选择值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58828635/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com