我是正则表达式的新手,并且需要执行相同的特定任务。我需要一个执行全局搜索并检查字符串中是否有3个或更多连续数字的正则表达式,如果是,则将所有数字替换为“ xxxx”。
例如,字符串
abcdef 12问题4567
应该更改为
abcdef XX排队XXXX
任何帮助,将不胜感激。谢谢。
最佳答案
更新
用这个
func testingRegex6(text:String) ->String{
do{
var finalText = text
let componentNSString = NSString.init(string:text)
let regex = try NSRegularExpression(pattern: "\\d+", options:[.dotMatchesLineSeparators])
let matches = regex.matches(in: text ,options: [], range: NSMakeRange(0, componentNSString.length)).reversed()
if(matches.filter({$0.range.length >= 3}).count > 0) { //here we check if we have any substring containing 3 o more digits
for result3 in matches {
finalText = finalText.replacingOccurrences(of: componentNSString.substring(with: result3.range), with: Array(repeating: "X", count: result3.range.length).joined())
}
}
return finalText
}
catch{
return ""
}
return ""
}
输入“ abcdef 12队列4567”日志“ abcdef XX队列XXXX”
输入“ abcdef 12 que82ws 45”日志“ abcdef 12 que82ws 45”