可以使用以下代码:
import Foundation
func getTextBetweenBrackets(input: String) -> [String] {
var results = [String]()
let regex = try! NSRegularExpression(pattern: "\\[(.*?)\\]", options: [])
let matches = regex.matches(in: input, options: [], range: NSRange(location: 0, length: input.utf16.count))
for match in matches {
if let range = Range(match.range(at: 1), in: input) {
let text = input[range]
results.append(String(text))
}
}
return results
}
let input = "This is some [example] text [with] brackets."
let texts = getTextBetweenBrackets(input: input)
print(texts) // Output: ["example", "with"]
上述代码中,我们定义了一个名为getTextBetweenBrackets
的函数,该函数接受一个字符串参数input
,并返回一个包含方括号之间文本的字符串数组。
函数内部使用了NSRegularExpression
类来创建一个正则表达式对象regex
,该正则表达式的模式是\\[(.*?)\\]
,其中\\[
和\\]
分别表示匹配方括号的字符,(.*?)
表示匹配方括号之间的任意字符,?
表示非贪婪匹配。
接下来,我们使用regex.matches(in:options:range:)
方法来获取所有匹配的结果。然后,遍历每个匹配结果,通过match.range(at:)
方法获取方括号之间文本的范围,再通过Range(_:in:)
方法将范围转换为String
类型的文本,并将其添加到结果数组中。
最后,我们调用getTextBetweenBrackets
函数,并传入一个示例字符串input
,得到方括号之间的文本数组texts
,并将其打印输出。
这是一个简单的示例,用于演示在Swift中获取一对方括号之间的文本的正则表达式。在实际应用中,您可能需要根据具体需求进行适当的修改和优化。
领取专属 10元无门槛券
手把手带您无忧上云