regexcache.scala

来自「JAVA 语言的函数式编程扩展」· SCALA 代码 · 共 41 行

SCALA
41
字号
/* NSC -- new Scala compiler * Copyright 2005-2007 LAMP/EPFL * @author  Lex Spoon */// $Id: RegexCache.scala 14416 2008-03-19 01:17:25Z mihaylov $package scala.tools.nsc.utilimport java.util.regex.Patternimport scala.collection.mutableobject RegexCache {  /** Maps patterns to compiled regexes */  private val regexMap = mutable.Map.empty[String, Pattern]  /** Lists the regexes that have been recorded in order */  private val regexList = new mutable.Queue[String]    private val regexesToCache = 1000  /** Compile a regex and add it to the cache */  private def compileAndAdd(regex: String): Pattern = {    val pattern = Pattern.compile(regex)    regexMap += (regex -> pattern)    regexList += regex    if (regexMap.size > regexesToCache)      regexMap -= regexList.dequeue()    pattern  }  /** Compile a regex, caching */  def apply(regex: String): Pattern =    regexMap.get(regex) match {      case Some(pattern) => pattern      case None => compileAndAdd(regex)    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?