Spec-Zone.ru › Scala 2.13 Library

Трейт scala.util.matching.UnanchoredRegex

trait UnanchoredRegex extends Regex

A Regex that finds the first match when used in a pattern match.

Source
Regex.scala
See also

Regex#unanchored

Линейные Супертипы
Regex, java.io.Serializable, AnyRef, Any

Члены-значения

final def !=(arg0: Any): Boolean

Проверка двух объектов на неравенство.

возвращает

true если !(this == that), иначе false.

Классы-определения
AnyRef → Any

final def ##(): Int

Эквивалентно x.hashCode за исключением упакованных числовых типов и null. Для чисел возвращает значение хеш-кода, согласованное с равенством значений: если два экземпляра типа значения сравниваются как true, то ## для каждого из них вернёт одинаковое значение хеш-кода. Для null возвращает хеш-код, где null.hashCode вызывает NullPointerException.

возвращает

значение хеш-кода, согласованное с ==

Классы-определения
AnyRef → Any

def +(other: String): String

Неявный
Этот член добавляется неявным преобразованием из UnanchoredRegex вany2stringadd[UnanchoredRegex] с помощью метода any2stringadd в scala.Predef.
Классы-определения
any2stringadd

def ->[B](y: B): (UnanchoredRegex, B)

Неявный
Этот член добавляется неявным преобразованием из UnanchoredRegex вArrowAssoc[UnanchoredRegex] с помощью метода ArrowAssoc в scala.Predef.
Классы-определения
ArrowAssoc
Аннотации
@inline()

final def ==(arg0: Any): Boolean

Выражение x == that эквивалентно if (x eq null) that eq null else x.equals(that).

возвращает

true если объект получателя эквивалентен аргументу; false в противном случае.

Классы-определения
AnyRef → Any

def anchored: Regex

Классы-определения
Regex

final def asInstanceOf[T0]: T0

Преобразует объект получателя к типу T0.

Обратите внимание, что успешность преобразования во время выполнения определяется семантикой стирания Scala. Таким образом, выражение 1.asInstanceOf[String] вызовет ClassCastException во время выполнения, в то время как выражение List(1).asInstanceOf[List[String]] этого не сделает. В последнем примере, поскольку аргумент типа стирается во время компиляции, невозможно проверить, содержат ли элементы списка требуемый тип.

возвращает

объект получателя.

Классы-определения
Any
Исключения

ClassCastException если объект получателя не является экземпляром стираемого типа T0.

def clone(): AnyRef

Создаёт копию объекта получателя.

По умолчанию реализация метода clone зависит от платформы.

возвращает

копию объекта получателя.

Атрибуты
protected[java.lang]
Классы-определения
AnyRef
Аннотации
@throws(classOf[java.lang.CloneNotSupportedException]) @native()
Примечание

не задано SLS в качестве члена AnyRef

def ensuring(cond: (UnanchoredRegex) => Boolean, msg: => Any): UnanchoredRegex

Неявный
Этот член добавляется неявным преобразованием из UnanchoredRegex вEnsuring[UnanchoredRegex] с помощью метода Ensuring в scala.Predef.
Классы-определения
Ensuring

def ensuring(cond: (UnanchoredRegex) => Boolean): UnanchoredRegex

Неявный
Этот член добавлен неявным преобразованием из UnanchoredRegex в Ensuring[UnanchoredRegex] с помощью метода Ensuring в scala.Predef.
Классы определений
Ensuring

def ensuring(cond: Boolean, msg: => Any): UnanchoredRegex

Неявный
Этот член добавлен неявным преобразованием из UnanchoredRegex в Ensuring[UnanchoredRegex] с помощью метода Ensuring в scala.Predef.
Классы определений
Ensuring

def ensuring(cond: Boolean): UnanchoredRegex

Неявный
Этот член добавлен неявным преобразованием из UnanchoredRegex в Ensuring[UnanchoredRegex] с помощью метода Ensuring в scala.Predef.
Классы определений
Ensuring

final def eq(arg0: AnyRef): Boolean

Проверяет, является ли аргумент (that) ссылкой на объект-получатель (this).

Метод eq реализует отношение эквивалентности на непустых экземплярах AnyRef, и имеет три дополнительных свойства:

    Он согласован: для любых непустых экземпляров x и y типа AnyRef, многократные вызовы x.eq(y) последовательно возвращают true или последовательно возвращают false. Для любого непустого экземпляра x типа AnyRef, x.eq(null) и null.eq(x) возвращают false. null.eq(null) возвращает true.

При переопределении методов equals или hashCode важно обеспечить согласованность их поведения с равенством по ссылке. Поэтому, если два объекта являются ссылками друг на друга (o1 eq o2), они должны быть равны друг другу (o1 == o2) и они должны хешироваться к одному значению (o1.hashCode == o2.hashCode).

возвращает

true если аргумент является ссылкой на объект-получатель; false в противном случае.

Классы определений
AnyRef

def equals(arg0: AnyRef): Boolean

Метод равенства для типов ссылок. Реализация по умолчанию делегирует вызов методу eq.

См. также equals в scala.Any.

возвращает

true если объект-получатель эквивалентен аргументу; false в противном случае.

Классы определений
AnyRef → Any

def finalize(): Unit

Вызывается сборщиком мусора для объекта-получателя, когда на объект больше нет ссылок.

Детали вызова метода finalize, а также взаимодействие между finalize и нелокальными возвратами и исключениями зависят от платформы.

Атрибуты
protected[java.lang]
Классы определений
AnyRef
Аннотации
@throws(classOf[java.lang.Throwable])
Примечание

не указан в SLS как член AnyRef

def findAllIn(source: CharSequence): MatchIterator

Возвращает все неперекрывающиеся совпадения этого Regex в заданной последовательности символов в виде scala.util.matching.Regex.MatchIterator, который является специальным scala.collection.Iterator, возвращающим совпавшие строки, но также позволяющим запросить дополнительные данные о последнем совпадении, такие как группы захвата и начальную позицию.

Также MatchIterator может быть преобразован в итератор, возвращающий объекты типа scala.util.matching.Regex.Match, как это обычно возвращается методом findAllMatchIn.

В случае потенциальных перекрывающихся совпадений возвращается первое возможное совпадение, а затем следующее совпадение, которое следует за вводом, потребленным первым совпадением:

val hat  = "hat[^a]+".r
val hathaway = "hathatthattthatttt"
val hats = hat.findAllIn(hathaway).toList                     // List(hath, hattth)
val pos  = hat.findAllMatchIn(hathaway).map(_.start).toList   // List(0, 7)

Для возвращения перекрывающихся совпадений можно сформулировать регулярное выражение с просмотром вперед (?=), которое не потребляет перекрывающуюся область.

val madhatter = "(h)(?=(at[^a]+))".r
val madhats   = madhatter.findAllMatchIn(hathaway).map {
  case madhatter(x,y) => s"$x$y"
}.toList                                       // List(hath, hatth, hattth, hatttt)

Попытка получить информацию о совпадении после исчерпания итератора приводит к java.lang.IllegalStateException. См. scala.util.matching.Regex.MatchIterator для получения дополнительных сведений.

source

Текст для поиска совпадений.

возвращает

А scala.util.matching.Regex.MatchIterator совпавших подстрок.

Классы определений
Regex
Пример:
    for (words <- """\w+""".r findAllIn "A simple example.") yield words

def findAllMatchIn(source: CharSequence): Iterator[Match]

Возвращает все непересекающиеся совпадения этого регулярного выражения в заданной последовательности символов как scala.collection.Iterator объектов scala.util.matching.Regex.Match.

source

Текст для поиска совпадений.

returns

scala.collection.Iterator объектов scala.util.matching.Regex.Match для всех совпадений.

Definition Classes
Regex
Пример:
    for (words <- """\w+""".r findAllMatchIn "A simple example.") yield words.start

def findFirstIn(source: CharSequence): Option[String]

Возвращает необязательную первую строку, соответствующую этому Regex в заданной последовательности символов, или None, если совпадений нет.

source

Текст для поиска совпадений.

returns

Объект scala.Option первой соответствующей строки в тексте.

Definition Classes
Regex
Пример:
    """\w+""".r findFirstIn "A simple example." foreach println // prints "A"

def findFirstMatchIn(source: CharSequence): Option[Match]

Возвращает необязательное первое совпадение этого Regex в заданной последовательности символов, или None, если совпадение отсутствует.

Если совпадение найдено, объект scala.util.matching.Regex.Match можно использовать для получения дополнительной информации.

source

Текст для поиска совпадений.

returns

Объект scala.Option объекта scala.util.matching.Regex.Match первой соответствующей строки в тексте.

Definition Classes
Regex
Пример:
    ("""[a-z]""".r findFirstMatchIn "A simple example.") map (_.start) // returns Some(2), the index of the first match in the text

def findPrefixMatchOf(source: CharSequence): Option[Match]

Возвращает необязательное совпадение этого Regex в начале заданной последовательности символов, или None, если ни один префикс последовательности не соответствует.

В отличие от findFirstMatchIn, этот метод вернет совпадение только в начале входных данных.

source

Текст для поиска совпадений.

returns

Объект scala.Option объекта scala.util.matching.Regex.Match сопоставленной строки.

Definition Classes
Regex
Пример:
    """\w+""".r findPrefixMatchOf "A simple example." map (_.after) // returns Some(" simple example.")

def findPrefixOf(source: CharSequence): Option[String]

Возвращает необязательное совпадение этого Regex в начале заданной последовательности символов, или None, если ни один префикс последовательности не соответствует.

В отличие от findFirstIn, этот метод вернет совпадение только в начале входных данных.

source

Текст для поиска совпадений.

returns

Объект scala.Option сопоставленного префикса.

Definition Classes
Regex
Пример:
    """\p{Lower}""".r findPrefixOf "A simple example." // returns None, since the text does not begin with a lowercase letter

def formatted(fmtstr: String): String

Возвращает строку, отформатированную согласно заданной format строке. Форматные строки аналогичны String.format (@см. java.lang.String.format).

Implicit
Этот член добавлен неявным преобразованием из UnanchoredRegex в StringFormat[UnanchoredRegex] с помощью метода StringFormat в scala.Predef.
Definition Classes
StringFormat
Annotations
@inline()

final def getClass(): Class[_ <: AnyRef]

Возвращает представление класса объекта во время выполнения.

returns

объект класса, соответствующий типу получателя во время выполнения.

Definition Classes
AnyRef → Any
Annotations
@native()

def hashCode(): Int

Метод hashCode для ссылочных типов. См. hashCode в scala.Any.

returns

значение кода хеширования для этого объекта.

Definition Classes
AnyRef → Any
Annotations
@native()

final def isInstanceOf[T0]: Boolean

Проверьте, является ли динамический тип объекта-получателя T0.

Обратите внимание, что результат теста зависит от семантики стирания Scala. Поэтому выражение 1.isInstanceOf[String] вернёт false, в то время как выражение List(1).isInstanceOf[List[String]] вернёт true. В последнем примере, поскольку аргумент типа стирается во время компиляции, невозможно проверить, соответствуют ли содержимое списка указанному типу.

возвращает

true, если объект-получатель является экземпляром стирания типа T0; false в противном случае.

Классы определений
Any

def matches(source: CharSequence): Boolean

Возвращает, соответствует ли этот Regex заданной последовательности символов.

Как и в случае с экстрактором, этот метод учитывает привязку.

source

Текст для сопоставления

возвращает

true тогда и только тогда, когда source соответствует этому Regex.

Классы определений
Regex
Пример:
    """\d+""".r matches "123" // returns true
См. также

Regex#unanchored

final def ne(arg0: AnyRef): Boolean

Эквивалентно !(this eq that).

возвращает

true, если аргумент не является ссылкой на объект-получатель; false в противном случае.

Классы определений
AnyRef

final def notify(): Unit

Разбудите один поток, ждущий на мониторе объекта-получателя.

Классы определений
AnyRef
Аннотации
@native()
Примечание

не указано SLS как член AnyRef

final def notifyAll(): Unit

Разбудите все потоки, ждущие на мониторе объекта-получателя.

Классы определений
AnyRef
Аннотации
@native()
Примечание

не указано SLS как член AnyRef

val pattern: Pattern

Классы определений
Regex

def regex: String

Классы определений
Regex

def replaceAllIn(target: CharSequence, replacer: (Match) => String): String

Заменяет все совпадения с помощью функции замены. Функция замены принимает scala.util.matching.Regex.Match, чтобы можно было получить дополнительную информацию из совпадения. Например:

import scala.util.matching.Regex
val datePattern = new Regex("""(\d\d\d\d)-(\d\d)-(\d\d)""", "year", "month", "day")
val text = "From 2011-07-15 to 2011-07-17"
val repl = datePattern replaceAllIn (text, m => s"${m group "month"}/${m group "day"}")

В строке замены знак доллара ($) в сочетании с числом будет интерпретироваться как ссылка на группу в совпадающем шаблоне, при этом числа от 1 до 9 соответствуют первым девяти группам, а 0 — всему совпадению. Любой другой символ является ошибкой. Обратный слэш (\) будет интерпретироваться как символ экранирования и может использоваться для экранирования знака доллара. Используйте Regex.quoteReplacement для экранирования этих символов.

target

Строка для сопоставления.

replacer

Функция, отображающая совпадение в другую строку.

возвращает

Строка назначения после замены.

Классы определений
Regex

def replaceAllIn(target: CharSequence, replacement: String): String

Заменяет все совпадения строкой.

В строке замены знак доллара ($) в сочетании с числом будет интерпретироваться как ссылка на группу в совпадающем шаблоне, при этом числа от 1 до 9 соответствуют первым девяти группам, а 0 — всему совпадению. Любой другой символ является ошибкой. Обратный слэш (\) будет интерпретироваться как символ экранирования и может использоваться для экранирования знака доллара. Используйте Regex.quoteReplacement для экранирования этих символов.

target

Строка для сопоставления

replacement

Строка, которая заменит каждое совпадение

возвращает

Результирующая строка

Классы определений
Regex
Пример:
    """\d+""".r replaceAllIn ("July 15", "<NUMBER>") // returns "July <NUMBER>"

def replaceFirstIn(target: CharSequence, replacement: String): String

Заменяет первое совпадение строкой.

В строке замены знак доллара ($) в сочетании с числом будет интерпретироваться как ссылка на группу в совпадающем шаблоне, при этом числа от 1 до 9 соответствуют первым девяти группам, а 0 — всему совпадению. Любой другой символ является ошибкой. Обратный слэш (\) будет интерпретироваться как символ экранирования и может использоваться для экранирования знака доллара. Используйте Regex.quoteReplacement для экранирования этих символов.

target

Строка для сопоставления

replacement

Строка, которая заменит совпадение

возвращает

Результирующая строка

Классы определений
Regex

def replaceSomeIn(target: CharSequence, replacer: (Match) => Option[String]): String

Заменяет некоторые совпадения с помощью функции replacer, которая возвращает scala.Option. Функция replacer принимает scala.util.matching.Regex.Match, чтобы можно было получить дополнительную информацию из совпадения. Например:

import scala.util.matching.Regex._

val vars = Map("x" -> "a var", "y" -> """some $ and \ signs""")
val text = "A text with variables %x, %y and %z."
val varPattern = """%(\w+)""".r
val mapper = (m: Match) => vars get (m group 1) map (quoteReplacement(_))
val repl = varPattern replaceSomeIn (text, mapper)

В строке замены знак доллара ($) , за которым следует число, будет интерпретироваться как ссылка на группу в сопоставленном шаблоне, при этом числа от 1 до 9 соответствуют первым девяти группам, а 0 соответствует всему совпадению. Любой другой символ является ошибкой. Символ обратной косой черты (\) будет интерпретироваться как символ экранирования и может использоваться для экранирования знака доллара. Используйте Regex.quoteReplacement для экранирования этих символов.

target

Строка для сопоставления.

replacer

Функция, которая необязательно отображает совпадение в другую строку.

returns

Строка target после замены.

Definition Classes
Regex

def runMatcher(m: Matcher): Boolean

Attributes
protected
Definition Classes
UnanchoredRegex → Regex

def split(toSplit: CharSequence): Array[String]

Разделяет предоставленную последовательность символов вокруг совпадений с этим регулярным выражением.

toSplit

Последовательность символов для разделения

returns

Массив строк, вычисленный путем разделения ввода вокруг совпадений с этим регулярным выражением

Definition Classes
Regex

final def synchronized[T0](arg0: => T0): T0

Definition Classes
AnyRef

def toString(): String

Строка, определяющая регулярное выражение

returns

представление объекта в виде строки.

Definition Classes
Regex → AnyRef → Any

def unanchored: UnanchoredRegex

Создает новый Regex с тем же шаблоном, но без требования, чтобы вся строка совпадала в шаблонах экстрактора и Regex#matches.

Обычно сопоставление с date ведет себя так, как будто шаблон заключен в якоря, "^pattern$".

Безякорный Regex ведет себя так, как будто эти якоря были удалены.

Обратите внимание, что этот метод фактически не удаляет никаких сопоставителей из шаблона.

Вызов anchored возвращает исходный Regex.

val date = """(\d\d\d\d)-(\d\d)-(\d\d)""".r.unanchored

val date(year, month, day) = "Date 2011-07-15"                       // OK

val copyright: String = "Date of this document: 2011-07-15" match {
  case date(year, month, day) => s"Copyright $year"                  // OK
  case _                      => "No copyright"
}
returns

Новый безякорный regex

Definition Classes
UnanchoredRegex → Regex

def unapplySeq(m: Match): Option[List[String]]

Пытается сопоставить scala.util.matching.Regex.Match.

Ранее неудачное сопоставление приводит к None.

Если было выполнено успешное сопоставление с текущим шаблоном, то используется этот результат.

В противном случае это регулярное выражение применяется к ранее сопоставленному вводу, и результат этого сопоставления используется.

Definition Classes
Regex

def unapplySeq(c: Char): Option[List[Char]]

Пытается сопоставить строковое представление scala.Char.

Если сопоставление успешно, результат — это первая сопоставленная группа, если группы определены, или пустая последовательность в противном случае.

Например:

val cat = "cat"
// the case must consume the group to match
val r = """(\p{Lower})""".r
cat(0) match { case r(x) => true }
cat(0) match { case r(_) => true }
cat(0) match { case r(_*) => true }
cat(0) match { case r() => true }     // no match

// there is no group to extract
val r = """\p{Lower}""".r
cat(0) match { case r(x) => true }    // no match
cat(0) match { case r(_) => true }    // no match
cat(0) match { case r(_*) => true }   // matches
cat(0) match { case r() => true }     // matches

// even if there are multiple groups, only one is returned
val r = """((.))""".r
cat(0) match { case r(_) => true }    // matches
cat(0) match { case r(_,_) => true }  // no match
c

Символ для сопоставления

returns

Сопоставление

Definition Classes
Regex

def unapplySeq(s: CharSequence): Option[List[String]]

Пытается сопоставить java.lang.CharSequence.

Если сопоставление успешно, результат — список сопоставленных групп (или элемент null, если группа не сопоставилась ни с одним вводом). Если шаблон не указывает групп, то результатом будет пустой список при успешном сопоставлении.

По умолчанию этот метод пытается сопоставить весь ввод; чтобы найти следующую сопоставляемую подпоследовательность, используйте безякорный Regex.

Например:

val p1 = "ab*c".r
val p1Matches = "abbbc" match {
  case p1() => true               // no groups
  case _    => false
}
val p2 = "a(b*)c".r
val p2Matches = "abbbc" match {
  case p2(_*) => true             // any groups
  case _      => false
}
val numberOfB = "abbbc" match {
  case p2(b) => Some(b.length)    // one group
  case _     => None
}
val p3 = "b*".r.unanchored
val p3Matches = "abbbc" match {
  case p3() => true               // find the b's
  case _    => false
}
val p4 = "a(b*)(c+)".r
val p4Matches = "abbbcc" match {
  case p4(_*) => true             // multiple groups
  case _      => false
}
val allGroups = "abbbcc" match {
  case p4(all @ _*) => all mkString "/" // "bbb/cc"
  case _            => ""
}
val cGroup = "abbbcc" match {
  case p4(_, c) => c
  case _        => ""
}
s

Строка для сопоставления

returns

Сопоставления

Definition Classes
Regex

final def wait(): Unit

Определяющие классы
AnyRef
Аннотации
@throws(classOf[java.lang.InterruptedException])

final def wait(arg0: Long, arg1: Int): Unit

Определяющие классы
AnyRef
Аннотации
@throws(classOf[java.lang.InterruptedException])

final def wait(arg0: Long): Unit

Определяющие классы
AnyRef
Аннотации
@throws(classOf[java.lang.InterruptedException]) @native()

© 2002-2019 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://www.scala-lang.org/api/2.13.0/scala/util/matching/UnanchoredRegex.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API