class MatchData

public class MatchData {}

功能:存储正则表达式匹配结果,并提供对正则匹配结果进行查询的函数。

func groupNumber()

public func groupNumber(): Int64

功能:获取捕获组的个数。

返回值:

  • Int64 - 捕获组的个数。

func matchPosition()

public func matchPosition(): Position

功能:获取上一次匹配到的子字符串在输入字符串中起始位置和末尾位置的索引。

返回值:

  • Position - 匹配结果位置信息。

func matchPosition(Int64)

public func matchPosition(group: Int64): Position

功能:根据给定的索引获取上一次匹配中该捕获组匹配到的子字符串在输入字符串中的位置信息。

参数:

  • group: Int64 - 指定组。

返回值:

  • Position - 对应捕获组的位置信息。

异常:

func matchStr()

public func matchStr(): String

功能:获取上一次匹配到的子字符串,结果与调用 matchStr(0) 相同。

返回值:

  • String - 匹配到的子字符串。

异常:

func matchStr(Int64)

public func matchStr(group: Int64): String

功能:根据给定的索引获取上一次匹配中该捕获组匹配到的子字符串。

捕获组的索引从 1 开始,索引为 0 表示获取整个正则表达式的匹配结果。

参数:

  • group: Int64 - 指定组。

返回值:

  • String - 匹配到的子字符串。

异常:

class Matcher

public class Matcher {
    public init(re: Regex, input: String)
}

功能:正则匹配器,用于扫描输入序列并进行匹配。

注意:

  • 要匹配的字符串最大长度不得超过 231-1。
  • 要使用 replaceAll 替换的字符串最大长度不得超过 230-2。

init(Regex, String)

public init(re: Regex, input: String)

功能:使用传入的正则表达式和输入序列创建 Matcher 实例。

参数:

  • re: Regex - 正则表达式。
  • input: String - 输入序列。

异常:

func allCount()

public func allCount(): Int64

功能:获取正则表示式的匹配结果总数。

默认是从头到尾匹配的结果,使用了 setRegion 后只会在设置的范围内查找。

返回值:

  • Int64 - 匹配结果总数。

func find()

public func find(): Option<MatchData>

功能:自当前字符串偏移位置起,查找第一个匹配到的子序列。

find 调用一次,当前偏移位置为最新一次匹配到的子序列后第一个字符位置,下次调用, find 从当前位置开始匹配。

返回值:

异常:

func find(Int64)

public func find(index: Int64): Option<MatchData>

功能:重置该匹配器索引位置,从 index 对应的位置处开始对输入序列进行匹配, 返回匹配到的子序列。

返回值:

异常:

func findAll()

public func findAll(): Option<Array<MatchData>>

功能:对整个输入序列进行匹配,查找所有匹配到的子序列。

返回值:

异常:

  • RegexException - 当重置匹配器内存分配失败或申请内存失败时,抛出异常。

func fullMatch()

public func fullMatch(): Option<MatchData>

功能:对整个输入序列进行匹配。

返回值:

func getString()

public func getString(): String

功能:获取匹配序列。

返回值:

func matchStart()

public func matchStart(): Option<MatchData>

功能:对输入序列的头部进行匹配。

返回值:

异常:

func region()

public func region(): Position

功能:返回匹配器的区域设置。

返回值:

  • Position - 匹配器的区域设置。

func replace(String)

public func replace(replacement: String): String

功能:自当前字符串偏移位置起,匹配到的第一个子序列替换为目标字符串, 并将当前索引位置设置到匹配子序列的下一个位置。

参数:

  • replacement: String - 指定替换字符串。

返回值:

  • String - 替换后字符串。

异常:

func replace(String, Int64)

public func replace(replacement: String, index: Int64): String

功能:从输入序列的 index 位置起匹配正则,将匹配到的第一个子序列替换为目标字符串。

参数:

  • replacement: String - 指定替换字符串。
  • index: Int64 - 匹配开始位置。

返回值:

  • String - 替换后字符串。

异常:

func replaceAll(String)

public func replaceAll(replacement: String): String

功能:将输入序列中所有与正则匹配的子序列替换为给定的目标字符串。

参数:

  • replacement: String - 指定替换字符串。

返回值:

  • String - 替换后的字符串。

异常:

  • RegexException - 当重置匹配器失败时,或者 c 侧申请内存失败,或者替换字符串时发生了 GC 时,抛出异常。
  • IllegalArgumentException - 当 replacement 长度大于 230-2,或者 replacement 包含空字符时,抛出异常。

func replaceAll(String, Int64)

public func replaceAll(replacement: String, limit: Int64): String

功能:将输入序列中与正则匹配的前 limit 个子序列替换为给定的替换字符串。

参数:

  • limit: Int64 - 替换次数。如果 limit 等于 0, 返回原来的序列;如果 limit 为负数, 将尽可能多次的替换。
  • replacement: String - 指定替换字符串。

返回值:

  • String - 替换后字符串。

异常:

  • RegexException - 当重置匹配器失败时,或者 c 侧申请内存失败,或者替换字符串时发生了 GC 时,抛出异常。
  • IllegalArgumentException - 当 replacement 长度大于 230-2,或者 replacement 包含空字符时,抛出异常。

func resetRegion()

public func resetRegion(): Matcher

功能:重置匹配器开始位置和结束位置。

返回值:

异常:

func resetString(String)

public func resetString(input: String): Matcher

功能:重设匹配序列,并重置匹配器。

参数:

  • input: String - 新的匹配序列。

返回值:

异常:

func setRegion(Int64, Int64)

public func setRegion(beginIndex: Int64, endIndex: Int64): Matcher

功能:设置匹配器可搜索区域的位置信息,具体位置由指定的 begin 和 end 决定。

参数:

  • beginIndex: Int64 - 区域开始位置。
  • endIndex: Int64 - 区域结束位置。

返回值:

异常:

func split()

public func split(): Array<String>

功能:将给定的输入序列根据正则尽可能的分割成多个子序列。

返回值:

func split(Int64)

public func split(limit: Int64): Array<String>

功能:将给定的输入序列根据正则尽可能的分割成多个子序列 (最多分割成 limit 个子串)。

参数:

  • limit: Int64 - 最多分割的子串个数。

返回值:

  • Array<String> - 如果 limit>0, 返回最多 limit 个子串;如果 limit<=0, 返回最大可分割数个子串。

异常:

class Regex

public class Regex {
    public init(s: String)
    public init(s: String, option: RegexOption)
}

功能:用来指定编译类型和输入序列。

正则匹配规则详见 regex 规则集。

init(String)

public init(s: String)

功能:创建 Regex 实例, 匹配模式为普通模式。

参数:

  • s: String - 正则表达式。

异常:

init(String, RegexOption)

public init(s: String, option: RegexOption)

功能:使用指定的模式创建一个 Regex 实例。

参数:

异常:

func matcher(String)

public func matcher(input: String): Matcher

功能:创建匹配器。

参数:

  • input: String - 要匹配的字符串, 字符串长度最大 231 - 1。

返回值:

异常:

func matches(String)

public func matches(input: String): Option<MatchData>

功能:创建匹配器,并将入参 input 与正则表达式进行完全匹配。

参数:

  • input: String - 要匹配的字符串, 字符串长度最大 231 - 1。

返回值:

异常:

func string()

public func string(): String

功能:获取正则的输入序列。

返回值:

class RegexOption

public class RegexOption <: ToString {
    public init()
}

功能:用于指定正则匹配的模式。

默认的正则匹配算法为 NFA ,匹配运行次数上限为 1000000。

init()

public init()

功能:创建一个 RegexOption 实例, 匹配模式为普通模式(NORMAL)。

func ignoreCase()

public func ignoreCase(): RegexOption

功能:修改 RegexOption,修改匹配模式为忽略大小写(IGNORECASE)。

返回值:

func multiLine()

public func multiLine(): RegexOption

功能:修改 RegexOption,修改匹配模式为多行文本模式(MULTILINE)。

返回值:

func toString()

public func toString(): String

功能:获取 RegexOption 当前表示的正则匹配模式。

返回值:

  • String - 正则匹配模式。