将动态字符串转换为属性字符串
Convert the dynamic string to Attributed String
我想将此字符串转换为属性字符串。字符串是动态的。在这里,“数字”和“'”需要是蓝色。 5'和37'中的例子应该是蓝色。
"J. Schlupp 5', C. Benteke 37'"
func matches(for regex: String, in text: String) -> [String] {
do {
let regex = try NSRegularExpression(pattern: regex)
let results = regex.matches(in: text,
range: NSRange(text.startIndex..., in: text))
return results.map {
String(text[Range([=10=].range, in: text)!])
}
} catch let error {
print("invalid regex: \(error.localizedDescription)")
return []
}
}
let baseString = "J. Schlupp 5', C. Benteke 37'"
let matched = matches(for: "[0-9]'", in: baseString)
print(matched)
这个returns下面的输出,从37号开始吧returns7'
["5\'", "7\'"]
我不会为你编写代码,但我会给你一个解决问题的想法:
创建一个 NSRegularExpression
以在您的源字符串中查找 <number>'
的实例。 运行 它在您的字符串上查找那些子字符串的实例。
从您的常规字符串创建一个 NSMutableAttributedString
,然后使用 addAttributes(_:range:)
将您想要的属性(蓝色文本)应用到您的 NSRegularExpression
找到的范围
编辑:
尝试使用正则表达式“[0-9]+'”匹配一位或多位数字,后跟一个 '
字符。
我想将此字符串转换为属性字符串。字符串是动态的。在这里,“数字”和“'”需要是蓝色。 5'和37'中的例子应该是蓝色。
"J. Schlupp 5', C. Benteke 37'"
func matches(for regex: String, in text: String) -> [String] {
do {
let regex = try NSRegularExpression(pattern: regex)
let results = regex.matches(in: text,
range: NSRange(text.startIndex..., in: text))
return results.map {
String(text[Range([=10=].range, in: text)!])
}
} catch let error {
print("invalid regex: \(error.localizedDescription)")
return []
}
}
let baseString = "J. Schlupp 5', C. Benteke 37'"
let matched = matches(for: "[0-9]'", in: baseString)
print(matched)
这个returns下面的输出,从37号开始吧returns7'
["5\'", "7\'"]
我不会为你编写代码,但我会给你一个解决问题的想法:
创建一个
NSRegularExpression
以在您的源字符串中查找<number>'
的实例。 运行 它在您的字符串上查找那些子字符串的实例。从您的常规字符串创建一个
NSMutableAttributedString
,然后使用addAttributes(_:range:)
将您想要的属性(蓝色文本)应用到您的NSRegularExpression
找到的范围
编辑:
尝试使用正则表达式“[0-9]+'”匹配一位或多位数字,后跟一个 '
字符。