嘿,我需要在我的 UILables 中增加双倍行距换行符的间距。我想搜索我的字符串并找到所有以 \n\n
开头的字符串。例如“Hello world\n我在下一行\n\n现在我在下一行并且它的间距比以前大\n现在我回到正常间距”
。我无法为此找出正则表达式。我正在尝试:
let regExRule = "^\n\n*"
并将其传递给此函数:
func matchesForRegexInText(regex: String, text: String) -> [String] {
do {
let regex = try NSRegularExpression(pattern: regex, options: [])
let nsString = text as NSString
let results = regex.matchesInString(text,
options: [], range: NSMakeRange(0, nsString.length))
return results.map { nsString.substringWithRange($0.range)}
} catch let error as NSError {
print("invalid regex: \(error.localizedDescription)")
return []
}
}
但是我得到的是一个空数组。不太确定如何为此构造正则表达式模式。任何指针将不胜感激。谢谢!
最佳答案
我看到的主要问题是正则表达式模式应该包括一个捕获组来选择所需的多个字符串。
func matchesForRegexInText(regex : String, text: String) -> [String] {
var captured = [String]()
let exp = try! NSRegularExpression(pattern: regex, options: [])
let matches = exp.matchesInString(text, options:[], range: NSMakeRange(0, text.characters.count))
for match in matches {
let c = (text as NSString).substringWithRange(match.rangeAtIndex(1))
captured.append(c)
}
return captured
}
let re = "\\n\\n([\\w\\\\s,']+)"; // selection with (...)
// ["Alpha", "Bravo", "Charlie"]
let strResults = matchesForRegexInText(re, text: "\n\nAlpha\n\nBravo\n\nCharlie\n\n")
关于ios - 在 Swift 中搜索以\n\n 开头的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39218805/