RegExUtil 正则工具类
-
理解概念:文本
123
,正则(1)2
,匹配项1(Match1)为12
,捕获组1(Group1)为1
。 -
匹配项从 0 开始,捕获组从 1 开始,捕获组为 0 时代表所在匹配项所有捕获组。
-
捕获组虽然在匹配项,但第二个匹配项的捕获组序号并不是从 1 开始的。
比如文本
123
,正则(1)|(2)3
,实际结果为:名称 startPos-endPos 内容 Match 1 0-1 1 Group 1 0-1 1 Match 2 1-3 23 Group 2 1-2 2 而下列方法中的“指定捕获组”或“第一个捕获组”都做了处理,每个匹配项中的捕获组都从 1 算起,除非入参
useLocalGrouping
为false
。
匹配
方法名 | 含义 | 示例(不传参 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) | "" |