跳到主要内容

RegExUtil 正则工具类

  • 理解概念:文本123,正则(1)2匹配项1(Match1)为12捕获组1(Group1)为1

  • 匹配项从 0 开始,捕获组从 1 开始,捕获组为 0 时代表所在匹配项所有捕获组

  • 捕获组虽然在匹配项,但第二个匹配项的捕获组序号并不是从 1 开始的。

    比如文本123,正则(1)|(2)3,实际结果为:

    名称startPos-endPos内容
    Match 10-11
    Group 10-11
    Match 21-323
    Group 21-22

    而下列方法中的“指定捕获组”或“第一个捕获组”都做了处理,每个匹配项中的捕获组都从 1 算起,除非入参useLocalGroupingfalse

匹配

方法名含义示例(不传参 flags)
match获取指定匹配项的指定捕获组的匹配值match("123", "1|(2)(3)", 1, 2)"3"
matchFirstItem获取第一个匹配项的指定捕获组的匹配值matchFirstItem("123", "(1)(2)|3", 2)"2"
matchFirstGroup获取指定匹配项的第一个捕获组的匹配值matchFirstGroup("123", "1|(2)(3)", 1)"2"
matchFirstItemGroup获取第一个匹配项的第一个捕获组的匹配值matchFirstItemGroup("123", "(1)(2)|3")"1"
matchAllItems获取所有匹配项的指定捕获组的匹配值集合matchAllItems("1234", "(1)(2)|(3)(4)", 2)["2", "4"]
matchAllItemsFirstGroup获取所有匹配项的第一个捕获组的匹配值集合matchAllItemsFirstGroup("1234", "(1)(2)|(3)(4)")["1", "3"]
matchAllGroups获取指定匹配项的所有捕获组的匹配值集合matchAllGroups("123", "1|(2)(3)", 1)["2", "3"]
matchAll获取所有匹配项的所有捕获组的匹配值集合matchAll("123", "1|(2)(3)")、matchAll("123", "1|(2)(3)", false)["2", "3"]
matchAll、matchAllItems获取所有匹配项的匹配值集合matchAll("123", "1|(2)(3)", true)、matchAllItems("123", "1|(2)(3)", 0)["1", "23"]

替换

方法名含义示例(不传参 flags)
replace替换指定匹配项的指定捕获组的匹配值replace("123", "1|(2)(3)", "", 1, 2)"12"
replaceFirstItem替换第一个匹配项的指定捕获组的匹配值replaceFirstItem("123", "(1)(2)|3", "", 2)"13"
replaceFirstGroup替换指定匹配项的第一个捕获组的匹配值replaceFirstGroup("123", "1|(2)(3)", "", 1)"13"
replaceFirstItemGroup替换第一个匹配项的第一个捕获组的匹配值replaceFirstItemGroup("123", "(1)(2)|3", "")"23"
replaceAllItems替换所有匹配项的指定捕获组的匹配值集合replaceAllItems("1234", "(1)(2)|(3)(4)", "", 2)"13"
replaceAllItemsFirstGroup替换所有匹配项的第一个捕获组的匹配值集合replaceAllItemsFirstGroup("1234", "(1)(2)|(3)(4)", "")"24"
replaceAllGroups替换指定匹配项的所有捕获组的匹配值集合replaceAllGroups("123", "1|(2)(3)", "", 1)"1"
replaceAll替换所有匹配项的所有捕获组的匹配值集合replaceAll("123", "1|(2)(3)", "")、replaceAll("123", "1|(2)(3)", "", false)"1"
replaceAll、replaceAllItems替换所有匹配项的匹配值集合replaceAll("123", "1|(2)(3)", "", true)、replaceAllItems("123", "1|(2)(3)", "", 0)""

删除

方法名含义示例(不传参 flags)
remove删除指定匹配项的指定捕获组的匹配值remove("123", "1|(2)(3)", 1, 2)"12"
removeFirstItem删除第一个匹配项的指定捕获组的匹配值removeFirstItem("123", "(1)(2)|3", 2)"13"
removeFirstGroup删除指定匹配项的第一个捕获组的匹配值removeFirstGroup("123", "1|(2)(3)", 1)"13"
removeFirstItemGroup删除第一个匹配项的第一个捕获组的匹配值removeFirstItemGroup("123", "(1)(2)|3")"23"
removeAllItems删除所有匹配项的指定捕获组的匹配值集合removeAllItems("1234", "(1)(2)|(3)(4)", 2)"13"
removeAllItemsFirstGroup删除所有匹配项的第一个捕获组的匹配值集合removeAllItemsFirstGroup("1234", "(1)(2)|(3)(4)")"24"
removeAllGroups删除指定匹配项的所有捕获组的匹配值集合removeAllGroups("123", "1|(2)(3)", 1)"1"
removeAll删除所有匹配项的所有捕获组的匹配值集合removeAll("123", "1|(2)(3)")、removeAll("123", "1|(2)(3)", false)"1"
removeAll、removeAllItems删除所有匹配项的匹配值集合removeAll("123", "1|(2)(3)", true)、removeAllItems("123", "1|(2)(3)", 0)""