我是正则表达式的新手,并且需要执行相同的特定任务。我需要一个执行全局搜索并检查字符串中是否有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”

08-26 12:02