//code block def getCodeBlock(start:String ,end:String,htmlContent:String):List[String]={ val list=List[String]() //使用单行模式提取字符,(?s)单行模式,(?m)多行模式 val regex1=("(?s)(?<="+start+")(.*?)(?="+end+")").r //清除换行符 val h2=htmlContent.replaceAll("\n\r","") //val regex1=("(?s)<body>(.+)</html>.*").r //匹配一次 val html_nodeList= regex1.findAllMatchIn(h2) for(s <- html_nodeList){ println("##########\n"+s) s::list } list }def getAdCodeBlockList(htmlContent:String):List[String]={ val htmlParse=HtmlDocParser val start="<div class=\"wrap\">" val end="<div class=\"bg\"></div>" val list=htmlParse.getCodeBlock(start ,end,htmlContent) list }def main(argvs:Array[String]): Unit ={ val spiderService=AliAdSpiderService val fcs = FileLocService val htmlContent=fcs.readFile("E:\\spider_html_code.txt") spiderService.getAdCodeBlockList(htmlContent) // println("test") }
scala 正侧表达式 -多行文本处理
最新推荐文章于 2022-10-03 22:11:57 发布