本文整理汇总了Scala中java.util.regex.Matcher类的典型用法代码示例。如果您正苦于以下问题:Scala Matcher类的具体用法?Scala Matcher怎么用?Scala Matcher使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Matcher类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Scala代码示例。
示例1: DoublePatternInterpreter
//设置package包名称以及导入依赖的类
package org.opencompare.formalizer.interpreters
import java.util.regex.Matcher
import org.opencompare.api.java.{Feature, Product, Value}
class DoublePatternInterpreter (
validHeaders : List[String],
regex : String,
parameters : List[String],
confident : Boolean)
extends RegexPatternInterpreter(validHeaders, regex, parameters, confident) {
override def createValue(s: String, matcher : Matcher, parameters : List[String], product : Product, feature : Feature) : Option[Value] = {
val value = factory.createRealValue()
value.setValue(try {
s.toDouble
} catch {
case e : NumberFormatException => Double.NaN
case e : NullPointerException => Double.NaN
})
Some(value)
}
}
示例2: EmptyPatternInterpreter
//设置package包名称以及导入依赖的类
package org.opencompare.formalizer.interpreters
import java.util.regex.Matcher
import org.opencompare.api.java.{Feature, Product, Value}
class EmptyPatternInterpreter (
validHeaders : List[String],
regex : String,
parameters : List[String],
confident : Boolean)
extends RegexPatternInterpreter(validHeaders, regex, parameters, confident) {
override def createValue(s: String, matcher : Matcher, parameters : List[String], product : Product, feature : Feature) : Option[Value] = {
val value = factory.createNotAvailable()
Some(value)
}
}
示例3: RegexPatternInterpreter
//设置package包名称以及导入依赖的类
package org.opencompare.formalizer.interpreters
import java.util.regex.{Matcher, Pattern}
import org.opencompare.api.java.{Value, Feature, Product}
abstract class RegexPatternInterpreter(initValidHeaders : List[String],
regex : String,
initParameters : List[String],
initConfident : Boolean) extends PatternInterpreter(initValidHeaders, initParameters, initConfident) {
private val pattern : Pattern = Pattern.compile(regex, Pattern.UNICODE_CHARACTER_CLASS |
Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE | Pattern.DOTALL)
override def matchAndCreateValue(s: String, product: Product, feature: Feature): Option[Value] = {
val matcher = pattern.matcher(s)
if (matcher.matches()) {
createValue(s, matcher, parameters, product, feature)
} else {
None
}
}
def createValue(s : String, matcher : Matcher, parameters : List[String], product : Product, feature : Feature) : Option[Value]
}
示例4: VariabilityConceptRefPatternInterpreter
//设置package包名称以及导入依赖的类
package org.opencompare.formalizer.interpreters
import java.util.regex.Matcher
import org.opencompare.api.java.{Feature, Product, Value}
class VariabilityConceptRefPatternInterpreter (
validHeaders : List[String],
regex : String,
parameters : List[String],
confident : Boolean)
extends RegexPatternInterpreter(validHeaders, regex, parameters, confident) {
override def createValue(s: String, matcher : Matcher, parameters : List[String], product : Product, feature : Feature) : Option[Value] = {
val value = factory.createStringValue()
value.setValue(s)
Some(value)
}
}
示例5: MultipleRegexPatternInterpreter
//设置package包名称以及导入依赖的类
package org.opencompare.formalizer.interpreters
import java.util.regex.Matcher
import org.opencompare.api.java.{Feature, Product, Value}
class MultipleRegexPatternInterpreter (
validHeaders : List[String],
regex : String,
parameters : List[String],
confident : Boolean)
extends RegexPatternInterpreter(validHeaders, regex, parameters, confident) {
override def createValue(s: String, matcher : Matcher, parameters : List[String], product : Product, feature : Feature) : Option[Value] = {
val value = parameters match { // TODO : support cardinality
// case "and" :: Nil => PcmmmFactory.eINSTANCE.createAnd()
// case "xor" :: Nil => PcmmmFactory.eINSTANCE.createXOr()
// case "or" :: Nil => PcmmmFactory.eINSTANCE.createOr()
case _ => factory.createMultiple()
}
var fullyInterpreted : Boolean = true
for (groupID <- 1 to matcher.groupCount()) {
val subConstraint = matcher.group(groupID)
if (subConstraint != null) {
lastCall = Some(s, product, feature)
val subCInterpretation = cellContentInterpreter.findInterpretation(subConstraint, product, feature)
if (subCInterpretation.isDefined) {
value.addSubValue(subCInterpretation.get)
} else {
fullyInterpreted = false
}
}
}
if (fullyInterpreted) {
Some(value)
} else {
None
}
}
}
示例6: InconsistentPatternInterpreter
//设置package包名称以及导入依赖的类
package org.opencompare.formalizer.interpreters
import java.util.regex.Matcher
import org.opencompare.api.java.{Feature, Product, Value}
class InconsistentPatternInterpreter (
validHeaders : List[String],
regex : String,
parameters : List[String],
confident : Boolean)
extends RegexPatternInterpreter(validHeaders, regex, parameters, confident) {
override def createValue(s: String, matcher : Matcher, parameters : List[String], product : Product, features : Feature) : Option[Value] = {
// val value = factory.create
// Some(value)
None
}
}
示例7: UnknownPatternInterpreter
//设置package包名称以及导入依赖的类
package org.opencompare.formalizer.interpreters
import java.util.regex.Matcher
import org.opencompare.api.java.{Feature, Product, Value}
import scala.collection.immutable.List
class UnknownPatternInterpreter (
validHeaders : List[String],
regex : String,
parameters : List[String],
confident : Boolean)
extends RegexPatternInterpreter(validHeaders, regex, parameters, confident) {
override def createValue(s: String, matcher : Matcher, parameters : List[String], product : Product, feature : Feature) : Option[Value] = {
val value = factory.createNotAvailable()
Some(value)
}
}
示例8: BooleanPatternInterpreter
//设置package包名称以及导入依赖的类
package org.opencompare.formalizer.interpreters
import java.util.regex.Matcher
import org.opencompare.api.java.{Feature, Product, Value}
class BooleanPatternInterpreter (
validHeaders : List[String],
regex : String,
parameters : List[String],
confident : Boolean)
extends RegexPatternInterpreter(validHeaders, regex, parameters, confident) {
override def createValue(s: String, matcher : Matcher, parameters : List[String], product : Product, feature : Feature) : Option[Value] = {
val value = factory.createBooleanValue();
if (!parameters.isEmpty) {
value.setValue(parameters.head.toBoolean)
} else {
value.setValue(false)
}
Some(value)
}
}
示例9: message
//设置package包名称以及导入依赖的类
package com.wunder.pets.validations
import java.util.regex.{Matcher, Pattern}
import org.postgresql.util.PSQLException
trait ValidationError {
def message: String
}
final class IsEmpty(val field: String) extends ValidationError {
override def message: String = s"$field cannot be empty"
}
final class NotGreaterThan[T](val field: String, val lowerBound: T) extends ValidationError {
def message: String = s"$field must be greater than $lowerBound"
}
final class NotLessThan[T](val field: String, val upperBound: T) extends ValidationError {
def message: String = s"$field must be less than $upperBound"
}
final class DuplicateValue(val e: PSQLException) extends ValidationError {
override def message: String = {
val regex = "Key \\((.*)\\)=\\((.*)\\) already exists."
val m: Matcher = Pattern.compile(regex).matcher(e.getServerErrorMessage.getDetail);
if (m.matches) {
s"${m.group(1)} has a duplicate value of ${m.group(2)}"
} else {
"Could not determine field and value."
}
}
}
final class GeneralError(val message: String) extends ValidationError
示例10: AkkaConfigPropertySourceAdapterPatternSpec
//设置package包名称以及导入依赖的类
package com.github.scalaspring.akka.config
import java.util.regex.Matcher
import com.typesafe.scalalogging.StrictLogging
import org.scalatest.prop.TableDrivenPropertyChecks._
import org.scalatest.{FlatSpec, Matchers}
class AkkaConfigPropertySourceAdapterPatternSpec extends FlatSpec with Matchers with StrictLogging {
val indexed = Table(
("name", "path", "index"),
("x[0]", "x", 0),
("someProperty[0]", "someProperty", 0),
("some_property[1]", "some_property", 1),
("some.property[0]", "some.property", 0),
(" some.property[0] ", "some.property", 0),
("some.other.property[893]", "some.other.property", 893)
)
val nonIndexed = Table(
("name"),
("x"),
("someProperty"),
("some_property"),
("some.property"),
("some.other.property")
)
"Indexed property regular expression" should "match indexed property names" in {
forAll (indexed) { (name: String, path: String, index: Int) =>
val m: Matcher = AkkaConfigPropertySourceAdapter.INDEXED_PROPERTY_PATTERN.matcher(name)
m.matches() shouldBe true
m.group("path") shouldEqual path
m.group("index") shouldEqual index.toString
}
}
it should "not match non-indexed property names" in {
forAll (nonIndexed) { (name: String) =>
val m: Matcher = AkkaConfigPropertySourceAdapter.INDEXED_PROPERTY_PATTERN.matcher(name)
m.matches() shouldBe false
}
}
}
示例11: Regexf
//设置package包名称以及导入依赖的类
package cas.utils
import java.util.regex.{Matcher, Pattern}
object Regexf {
val wordsBound = "(\\b[^\\p{L}]+\\b)" // TODO: Care
val allExceptText = "[^\\w\\s\\d\\p{L}]+"
val upperCase = "[A-Z|\\p{Lu}]"
val mainPunctuation = "[,\\.;!\"]+"
def cleanAndSplit(str: String, byRegexp: String = wordsBound) = {
val ptr = Pattern.compile(byRegexp)
ptr.split(cleanToText(str))
}
def cleanToText(str: String) = {
val sepsAndData: Pattern = Pattern.compile(allExceptText)
val sepsAndDataM: Matcher = sepsAndData.matcher(str)
sepsAndDataM.replaceAll("")
}
def countItems(str: String, regexp: String) = {
val ptr = Pattern.compile(regexp)
val matcher = ptr.matcher(str)
var count = 0
while (matcher.find) count += 1
count
}
}
示例12: LinkedRouteV2
//设置package包名称以及导入依赖的类
package webby.route.v2
import java.lang.reflect.{InvocationTargetException, Method}
import java.util.regex.{Matcher, Pattern}
import io.netty.handler.codec.http.HttpMethod
import webby.api.mvc.Handler
import webby.route.{DomainProvider, Var}
class LinkedRouteV2(val name: String,
val domainProvider: DomainProvider[_],
val method: HttpMethod,
val basePath: String,
val pattern: Pattern,
routeLinksForDomainData: (Any) => RouteHandlers,
val vars: Vector[Var[_]],
val varIndices: Vector[Int],
val linkMethod: Method) {
require(!vars.contains(null), "All variables must be used in url. " + toString)
require(varIndices.size == linkMethod.getParameterTypes.size, "Method argument count mismatch. Seems method with the same name already exists. You should rename it, or make it final. " + toString)
def resolve(domain: Any, m: Matcher): Option[Handler] = {
val routeLinks = routeLinksForDomainData(domain)
var i: Int = 0
val ln = varIndices.size
val args = Array.ofDim[AnyRef](ln)
while (i < ln) {
val group: String = m.group(varIndices(i) + 1)
val vr: Var[_] = vars(i)
try {
args(i) = vr.fromString(group).asInstanceOf[AnyRef]
} catch {
// ?????? ??? ???????? ???????? (??? ???????, ??? NumberFormatException, ????? ????? ??????? ??????? ??? int).
case e: Throwable => return None
}
i += 1
}
try {
Some(linkMethod.invoke(routeLinks, args: _*).asInstanceOf[Handler])
} catch {
case e: InvocationTargetException => throw e.getCause
}
}
override def toString: String = method.name() + " (" + basePath + ") " + pattern + " - " + name
}
示例13: recognize
//设置package包名称以及导入依赖的类
package ner
import java.util.regex.{Matcher, Pattern}
import text.{StringNone, StringOption, StringSome}
import time.TimeTmp
import scala.collection.mutable.ListBuffer
trait NamedEntityRecognizer {
protected type NEFile = String
protected type NELine = String
protected type MetaInfo = (NEFile, NELine)
protected type NEText = String
protected type NESynonyms = Seq[String]
protected type NE = (NEText, MetaInfo, TimeTmp, NESynonyms)
protected type NEList = List[NE]
protected val recognizerName: String
protected val entityList: NEList
def recognize(textOpt: StringOption): Seq[NamedEntity] = {
textOpt match {
case StringSome(text) =>
val buffer: ListBuffer[NamedEntity] = ListBuffer[NamedEntity]()
entityList foreach {
case (entity, (file, line), time, synonyms) if text contains entity =>
val matcher: Matcher = Pattern.compile(Pattern.quote(entity)).matcher(text)
while (matcher.find) {
buffer += NamedEntity(
StringOption(matcher.group),
time,
matcher.start until matcher.end,
StringOption("%s:%s".format(file, line)),
StringOption(recognizerName),
synonyms
)
}
case _ =>
//Do nothing
}
buffer.result
case StringNone =>
Nil
}
}
protected def initialize: NEList
}
示例14: extract
//设置package包名称以及导入依赖的类
package us.feliscat.ner
import java.util.regex.{Matcher, Pattern}
import us.feliscat.text.{StringNone, StringOption, StringSome}
import us.feliscat.time.TimeTmp
import scala.collection.mutable.ListBuffer
trait NamedEntityRecognizer {
protected type NEFile = String
protected type NELine = String
protected type MetaInfo = (NEFile, NELine)
protected type NEText = String
protected type NESynonyms = Seq[String]
protected type NE = (NEText, MetaInfo, TimeTmp, NESynonyms)
protected type NEList = List[NE]
protected val recognizerName: String
protected val entityList: NEList
protected def extract(sentence: StringOption): Seq[TimeTmp]
def recognize(textOpt: StringOption): Seq[NamedEntity] = {
textOpt match {
case StringSome(text) =>
val buffer = ListBuffer.empty[NamedEntity]
entityList foreach {
case (entity, (file, line), time, synonyms) if text contains entity =>
val matcher: Matcher = Pattern.compile(Pattern.quote(entity)).matcher(text)
while (matcher.find) {
buffer += NamedEntity(
StringOption(matcher.group),
time,
matcher.start until matcher.end,
StringOption(s"$file:$line"),
StringOption(recognizerName),
synonyms
)
}
case _ =>
//Do nothing
}
buffer.result
case StringNone =>
Nil
}
}
protected def initialize: NEList
}
示例15: ssplit
//设置package包名称以及导入依赖的类
package uima.modules.common.ja
import java.util.regex.{Matcher, Pattern}
import uima.modules.common.MultiLingualDocumentAnnotator
import us.feliscat.sentence.ja.JapaneseSentenceSplitter
import us.feliscat.text.StringOption
import us.feliscat.time.TimeTmp
import us.feliscat.time.ja.JapaneseTimeExtractorForWorldHistory
import us.feliscat.types.TextAnnotation
import us.feliscat.types.ja.Morpheme
import us.feliscat.util.uima.fsList.FSListUtils
import scala.collection.mutable
trait JapaneseDocumentAnnotator extends MultiLingualDocumentAnnotator with JapaneseDocumentAnalyzer {
override protected def ssplit(textOpt: StringOption): Seq[String] = {
JapaneseSentenceSplitter.split(textOpt).map(_.text)
}
override protected def extractTime(sentenceOpt: StringOption): TimeTmp = {
JapaneseTimeExtractorForWorldHistory.extractUnionTime(sentenceOpt)
}
override protected def correct(text: TextAnnotation, keywordSet: Seq[String]): Unit = {
val builder = new mutable.StringBuilder(text.getText.length)
text.getMorphemeList.toSeq.asInstanceOf[Seq[Morpheme]] foreach {
morpheme: Morpheme =>
if (!morpheme.getPos.startsWith("???")) {
builder.append(morpheme.getOriginalText)
}
}
text.setText(recursivelyRemoveNoise(builder.result, keywordSet, 0))
}
private def recursivelyRemoveNoise(text: String, keywordSet: Seq[String], index: Int): String = {
val p: Pattern = Pattern.compile("""\([^\)]*\)""")
val m: Matcher = p.matcher(text)
if (m.find(index)) {
if (keywordSet.contains(m.group)) {
recursivelyRemoveNoise(
text,
keywordSet,
m.end)
} else {
recursivelyRemoveNoise(
text.substring(0, m.start) concat text.substring(m.end),
keywordSet,
m.start)
}
} else {
text
}
}
}