Package com.luna.common.regex
Class ReUtil
java.lang.Object
com.luna.common.regex.ReUtil
正则相关工具类
常用正则请见
常用正则请见
Validator
- Author:
- xiaoleilu
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic boolean
contains
(String regex, CharSequence content) 指定内容中是否有表达式匹配的内容static boolean
contains
(Pattern pattern, CharSequence content) 指定内容中是否有表达式匹配的内容static int
count
(String regex, CharSequence content) 计算指定字符串中,匹配pattern的个数static int
count
(Pattern pattern, CharSequence content) 计算指定字符串中,匹配pattern的个数static String
delAll
(String regex, CharSequence content) 删除匹配的全部内容static String
delAll
(Pattern pattern, CharSequence content) 删除匹配的全部内容static String
delFirst
(String regex, CharSequence content) 删除匹配的第一个内容static String
delFirst
(Pattern pattern, CharSequence content) 删除匹配的第一个内容static String
delLast
(String regex, CharSequence str) 删除匹配的最后一个内容static String
delLast
(Pattern pattern, CharSequence str) 删除匹配的最后一个内容static String
delPre
(String regex, CharSequence content) 删除正则匹配到的内容之前的字符 如果没有找到,则返回原文static String
escape
(char c) 转义字符,将正则的关键字转义static String
escape
(CharSequence content) 转义字符串,将正则的关键字转义static String
extractMulti
(String regex, CharSequence content, String template) 从content中匹配出多个值并根据template生成新的字符串
匹配结束后会删除匹配内容之前的内容(包括匹配内容)
例如:
content 2013年5月 pattern (.*?)年(.*?)月 template: $1-$2 return 2013-5static String
extractMulti
(Pattern pattern, CharSequence content, String template) 从content中匹配出多个值并根据template生成新的字符串
例如:
content 2013年5月 pattern (.*?)年(.*?)月 template: $1-$2 return 2013-5static String
extractMultiAndDelPre
(String regex, Holder<CharSequence> contentHolder, String template) 从content中匹配出多个值并根据template生成新的字符串
例如:
content 2013年5月 pattern (.*?)年(.*?)月 template: $1-$2 return 2013-5static String
extractMultiAndDelPre
(Pattern pattern, Holder<CharSequence> contentHolder, String template) 从content中匹配出多个值并根据template生成新的字符串
匹配结束后会删除匹配内容之前的内容(包括匹配内容)
例如:
content 2013年5月 pattern (.*?)年(.*?)月 template: $1-$2 return 2013-5findAll
(String regex, CharSequence content, int group) 取得内容中匹配的所有结果static <T extends Collection<String>>
TfindAll
(String regex, CharSequence content, int group, T collection) 取得内容中匹配的所有结果findAll
(Pattern pattern, CharSequence content, int group) 取得内容中匹配的所有结果static <T extends Collection<String>>
TfindAll
(Pattern pattern, CharSequence content, int group, T collection) 取得内容中匹配的所有结果findAllGroup0
(String regex, CharSequence content) 取得内容中匹配的所有结果,获得匹配的所有结果中正则对应分组0的内容findAllGroup0
(Pattern pattern, CharSequence content) 取得内容中匹配的所有结果,获得匹配的所有结果中正则对应分组0的内容findAllGroup1
(String regex, CharSequence content) 取得内容中匹配的所有结果,获得匹配的所有结果中正则对应分组1的内容findAllGroup1
(Pattern pattern, CharSequence content) 取得内容中匹配的所有结果,获得匹配的所有结果中正则对应分组1的内容static String
get
(String regex, CharSequence content, int groupIndex) 获得匹配的字符串static String
get
(Pattern pattern, CharSequence content, int groupIndex) 获得匹配的字符串,对应分组0表示整个匹配内容,1表示第一个括号分组内容,依次类推getAllGroups
(Pattern pattern, CharSequence content) 获得匹配的字符串匹配到的所有分组getAllGroups
(Pattern pattern, CharSequence content, boolean withGroup0) 获得匹配的字符串匹配到的所有分组static Integer
getFirstNumber
(CharSequence StringWithNumber) 从字符串中获得第一个整数static String
getGroup0
(String regex, CharSequence content) 获得匹配的字符串,获得正则中分组0的内容static String
getGroup0
(Pattern pattern, CharSequence content) 获得匹配的字符串,,获得正则中分组0的内容static String
getGroup1
(String regex, CharSequence content) 获得匹配的字符串,获得正则中分组1的内容static String
getGroup1
(Pattern pattern, CharSequence content) 获得匹配的字符串,,获得正则中分组1的内容static MatchResult
indexOf
(String regex, CharSequence content) 找到指定正则匹配到字符串的开始位置static MatchResult
indexOf
(Pattern pattern, CharSequence content) 找到指定模式匹配到字符串的开始位置static boolean
isMatch
(String regex, CharSequence content) 给定内容是否匹配正则static boolean
isMatch
(Pattern pattern, CharSequence content) 给定内容是否匹配正则static MatchResult
lastIndexOf
(String regex, CharSequence content) 找到指定正则匹配到第一个字符串的位置static MatchResult
lastIndexOf
(Pattern pattern, CharSequence content) 找到指定模式匹配到最后一个字符串的位置static String
replaceAll
(CharSequence str, String regex, Func1<Matcher, String> replaceFun) 替换所有正则匹配的文本,并使用自定义函数决定如何替换
replaceFun可以通过Matcher
提取出匹配到的内容的不同部分,然后经过重新处理、组装变成新的内容放回原位。static String
replaceAll
(CharSequence content, String regex, String replacementTemplate) 正则替换指定值
通过正则查找到字符串,然后把匹配到的字符串加入到replacementTemplate中,$1表示分组1的字符串static String
replaceAll
(CharSequence str, Pattern pattern, Func1<Matcher, String> replaceFun) 替换所有正则匹配的文本,并使用自定义函数决定如何替换
replaceFun可以通过Matcher
提取出匹配到的内容的不同部分,然后经过重新处理、组装变成新的内容放回原位。static String
replaceAll
(CharSequence content, Pattern pattern, String replacementTemplate) 正则替换指定值
通过正则查找到字符串,然后把匹配到的字符串加入到replacementTemplate中,$1表示分组1的字符串static String
replaceFirst
(Pattern pattern, CharSequence content, String replacement) 替换匹配的第一个内容
-
Field Details
-
RE_CHINESE
正则表达式匹配中文汉字- See Also:
-
RE_CHINESES
正则表达式匹配中文字符串- See Also:
-
RE_KEYS
正则中需要被转义的关键字
-
-
Constructor Details
-
ReUtil
public ReUtil()
-
-
Method Details
-
getGroup0
获得匹配的字符串,获得正则中分组0的内容- Parameters:
regex
- 匹配的正则content
- 被匹配的内容- Returns:
- 匹配后得到的字符串,未匹配返回null
- Since:
- 3.1.2
-
getGroup1
获得匹配的字符串,获得正则中分组1的内容- Parameters:
regex
- 匹配的正则content
- 被匹配的内容- Returns:
- 匹配后得到的字符串,未匹配返回null
- Since:
- 3.1.2
-
get
获得匹配的字符串- Parameters:
regex
- 匹配的正则content
- 被匹配的内容groupIndex
- 匹配正则的分组序号- Returns:
- 匹配后得到的字符串,未匹配返回null
-
getGroup0
获得匹配的字符串,,获得正则中分组0的内容- Parameters:
pattern
- 编译后的正则模式content
- 被匹配的内容- Returns:
- 匹配后得到的字符串,未匹配返回null
- Since:
- 3.1.2
-
getGroup1
获得匹配的字符串,,获得正则中分组1的内容- Parameters:
pattern
- 编译后的正则模式content
- 被匹配的内容- Returns:
- 匹配后得到的字符串,未匹配返回null
- Since:
- 3.1.2
-
get
获得匹配的字符串,对应分组0表示整个匹配内容,1表示第一个括号分组内容,依次类推- Parameters:
pattern
- 编译后的正则模式content
- 被匹配的内容groupIndex
- 匹配正则的分组序号,0表示整个匹配内容,1表示第一个括号分组内容,依次类推- Returns:
- 匹配后得到的字符串,未匹配返回null
-
getAllGroups
获得匹配的字符串匹配到的所有分组- Parameters:
pattern
- 编译后的正则模式content
- 被匹配的内容- Returns:
- 匹配后得到的字符串数组,按照分组顺序依次列出,未匹配到返回空列表,任何一个参数为null返回null
- Since:
- 3.1.0
-
getAllGroups
获得匹配的字符串匹配到的所有分组- Parameters:
pattern
- 编译后的正则模式content
- 被匹配的内容withGroup0
- 是否包括分组0,此分组表示全匹配的信息- Returns:
- 匹配后得到的字符串数组,按照分组顺序依次列出,未匹配到返回空列表,任何一个参数为null返回null
- Since:
- 4.0.13
-
extractMulti
从content中匹配出多个值并根据template生成新的字符串
例如:
content 2013年5月 pattern (.*?)年(.*?)月 template: $1-$2 return 2013-5- Parameters:
pattern
- 匹配正则content
- 被匹配的内容template
- 生成内容模板,变量 $1 表示group1的内容,以此类推- Returns:
- 新字符串
-
extractMulti
从content中匹配出多个值并根据template生成新的字符串
匹配结束后会删除匹配内容之前的内容(包括匹配内容)
例如:
content 2013年5月 pattern (.*?)年(.*?)月 template: $1-$2 return 2013-5- Parameters:
regex
- 匹配正则字符串content
- 被匹配的内容template
- 生成内容模板,变量 $1 表示group1的内容,以此类推- Returns:
- 按照template拼接后的字符串
-
extractMultiAndDelPre
public static String extractMultiAndDelPre(Pattern pattern, Holder<CharSequence> contentHolder, String template) 从content中匹配出多个值并根据template生成新的字符串
匹配结束后会删除匹配内容之前的内容(包括匹配内容)
例如:
content 2013年5月 pattern (.*?)年(.*?)月 template: $1-$2 return 2013-5- Parameters:
pattern
- 匹配正则contentHolder
- 被匹配的内容的Holder,value为内容正文,经过这个方法的原文将被去掉匹配之前的内容template
- 生成内容模板,变量 $1 表示group1的内容,以此类推- Returns:
- 新字符串
-
extractMultiAndDelPre
public static String extractMultiAndDelPre(String regex, Holder<CharSequence> contentHolder, String template) 从content中匹配出多个值并根据template生成新的字符串
例如:
content 2013年5月 pattern (.*?)年(.*?)月 template: $1-$2 return 2013-5- Parameters:
regex
- 匹配正则字符串contentHolder
- 被匹配的内容的Holder,value为内容正文,经过这个方法的原文将被去掉匹配之前的内容template
- 生成内容模板,变量 $1 表示group1的内容,以此类推- Returns:
- 按照template拼接后的字符串
-
delFirst
删除匹配的第一个内容- Parameters:
regex
- 正则content
- 被匹配的内容- Returns:
- 删除后剩余的内容
-
delFirst
删除匹配的第一个内容- Parameters:
pattern
- 正则content
- 被匹配的内容- Returns:
- 删除后剩余的内容
-
replaceFirst
替换匹配的第一个内容- Parameters:
pattern
- 正则content
- 被匹配的内容replacement
- 替换的内容- Returns:
- 替换后剩余的内容
- Since:
- 5.6.5
-
delLast
删除匹配的最后一个内容- Parameters:
regex
- 正则str
- 被匹配的内容- Returns:
- 删除后剩余的内容
- Since:
- 5.6.5
-
delLast
删除匹配的最后一个内容- Parameters:
pattern
- 正则str
- 被匹配的内容- Returns:
- 删除后剩余的内容
- Since:
- 5.6.5
-
delAll
删除匹配的全部内容- Parameters:
regex
- 正则content
- 被匹配的内容- Returns:
- 删除后剩余的内容
-
delAll
删除匹配的全部内容- Parameters:
pattern
- 正则content
- 被匹配的内容- Returns:
- 删除后剩余的内容
-
delPre
删除正则匹配到的内容之前的字符 如果没有找到,则返回原文- Parameters:
regex
- 定位正则content
- 被查找的内容- Returns:
- 删除前缀后的新内容
-
findAllGroup0
取得内容中匹配的所有结果,获得匹配的所有结果中正则对应分组0的内容- Parameters:
regex
- 正则content
- 被查找的内容- Returns:
- 结果列表
- Since:
- 3.1.2
-
findAllGroup1
取得内容中匹配的所有结果,获得匹配的所有结果中正则对应分组1的内容- Parameters:
regex
- 正则content
- 被查找的内容- Returns:
- 结果列表
- Since:
- 3.1.2
-
findAll
取得内容中匹配的所有结果- Parameters:
regex
- 正则content
- 被查找的内容group
- 正则的分组- Returns:
- 结果列表
- Since:
- 3.0.6
-
findAll
public static <T extends Collection<String>> T findAll(String regex, CharSequence content, int group, T collection) 取得内容中匹配的所有结果- Type Parameters:
T
- 集合类型- Parameters:
regex
- 正则content
- 被查找的内容group
- 正则的分组collection
- 返回的集合类型- Returns:
- 结果集
-
findAllGroup0
取得内容中匹配的所有结果,获得匹配的所有结果中正则对应分组0的内容- Parameters:
pattern
- 编译后的正则模式content
- 被查找的内容- Returns:
- 结果列表
- Since:
- 3.1.2
-
findAllGroup1
取得内容中匹配的所有结果,获得匹配的所有结果中正则对应分组1的内容- Parameters:
pattern
- 编译后的正则模式content
- 被查找的内容- Returns:
- 结果列表
- Since:
- 3.1.2
-
findAll
取得内容中匹配的所有结果- Parameters:
pattern
- 编译后的正则模式content
- 被查找的内容group
- 正则的分组- Returns:
- 结果列表
- Since:
- 3.0.6
-
findAll
public static <T extends Collection<String>> T findAll(Pattern pattern, CharSequence content, int group, T collection) 取得内容中匹配的所有结果- Type Parameters:
T
- 集合类型- Parameters:
pattern
- 编译后的正则模式content
- 被查找的内容group
- 正则的分组collection
- 返回的集合类型- Returns:
- 结果集
-
count
计算指定字符串中,匹配pattern的个数- Parameters:
regex
- 正则表达式content
- 被查找的内容- Returns:
- 匹配个数
-
count
计算指定字符串中,匹配pattern的个数- Parameters:
pattern
- 编译后的正则模式content
- 被查找的内容- Returns:
- 匹配个数
-
contains
指定内容中是否有表达式匹配的内容- Parameters:
regex
- 正则表达式content
- 被查找的内容- Returns:
- 指定内容中是否有表达式匹配的内容
- Since:
- 3.3.1
-
contains
指定内容中是否有表达式匹配的内容- Parameters:
pattern
- 编译后的正则模式content
- 被查找的内容- Returns:
- 指定内容中是否有表达式匹配的内容
- Since:
- 3.3.1
-
indexOf
找到指定正则匹配到字符串的开始位置- Parameters:
regex
- 正则content
- 字符串- Returns:
- 位置,
null
表示未找到 - Since:
- 5.6.5
-
indexOf
找到指定模式匹配到字符串的开始位置- Parameters:
pattern
- 模式content
- 字符串- Returns:
- 位置,
null
表示未找到 - Since:
- 5.6.5
-
lastIndexOf
找到指定正则匹配到第一个字符串的位置- Parameters:
regex
- 正则content
- 字符串- Returns:
- 位置,
null
表示未找到 - Since:
- 5.6.5
-
lastIndexOf
找到指定模式匹配到最后一个字符串的位置- Parameters:
pattern
- 模式content
- 字符串- Returns:
- 位置,
null
表示未找到 - Since:
- 5.6.5
-
getFirstNumber
从字符串中获得第一个整数- Parameters:
StringWithNumber
- 带数字的字符串- Returns:
- 整数
-
isMatch
给定内容是否匹配正则- Parameters:
regex
- 正则content
- 内容- Returns:
- 正则为null或者""则不检查,返回true,内容为null返回false
-
isMatch
给定内容是否匹配正则- Parameters:
pattern
- 模式content
- 内容- Returns:
- 正则为null或者""则不检查,返回true,内容为null返回false
-
replaceAll
正则替换指定值
通过正则查找到字符串,然后把匹配到的字符串加入到replacementTemplate中,$1表示分组1的字符串例如:原字符串是:中文1234,我想把1234换成(1234),则可以:
ReUtil.replaceAll("中文1234", "(\\d+)", "($1)")) 结果:中文(1234)
- Parameters:
content
- 文本regex
- 正则replacementTemplate
- 替换的文本模板,可以使用$1类似的变量提取正则匹配出的内容- Returns:
- 处理后的文本
-
replaceAll
正则替换指定值
通过正则查找到字符串,然后把匹配到的字符串加入到replacementTemplate中,$1表示分组1的字符串- Parameters:
content
- 文本pattern
-Pattern
replacementTemplate
- 替换的文本模板,可以使用$1类似的变量提取正则匹配出的内容- Returns:
- 处理后的文本
- Since:
- 3.0.4
-
replaceAll
替换所有正则匹配的文本,并使用自定义函数决定如何替换
replaceFun可以通过Matcher
提取出匹配到的内容的不同部分,然后经过重新处理、组装变成新的内容放回原位。replaceAll(this.content, "(\\d+)", parameters -> "-" + parameters.group(1) + "-") // 结果为:"ZZZaaabbbccc中文-1234-"
- Parameters:
str
- 要替换的字符串regex
- 用于匹配的正则式replaceFun
- 决定如何替换的函数- Returns:
- 替换后的文本
- Since:
- 4.2.2
-
replaceAll
public static String replaceAll(CharSequence str, Pattern pattern, Func1<Matcher, String> replaceFun) 替换所有正则匹配的文本,并使用自定义函数决定如何替换
replaceFun可以通过Matcher
提取出匹配到的内容的不同部分,然后经过重新处理、组装变成新的内容放回原位。replaceAll(this.content, "(\\d+)", parameters -> "-" + parameters.group(1) + "-") // 结果为:"ZZZaaabbbccc中文-1234-"
- Parameters:
str
- 要替换的字符串pattern
- 用于匹配的正则式replaceFun
- 决定如何替换的函数,可能被多次调用(当有多个匹配时)- Returns:
- 替换后的字符串
- Since:
- 4.2.2
-
escape
转义字符,将正则的关键字转义- Parameters:
c
- 字符- Returns:
- 转义后的文本
-
escape
转义字符串,将正则的关键字转义- Parameters:
content
- 文本- Returns:
- 转义后的文本
-