Package org.aoju.bus.core.toolkit
Class PatternKit
java.lang.Object
org.aoju.bus.core.toolkit.PatternKit
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclear()清空缓存池static booleancontains(String regex, CharSequence content) 指定内容中是否有表达式匹配的内容static booleancontains(Pattern pattern, CharSequence content) 指定内容中是否有表达式匹配的内容static int计算指定字符串中,匹配pattern的个数static int计算指定字符串中,匹配pattern的个数static String删除匹配的全部内容static String删除匹配的全部内容static String删除匹配的第一个内容static StringdelLast(String regex, CharSequence text) 删除匹配的最后一个内容static StringdelLast(Pattern pattern, CharSequence text) 删除匹配的最后一个内容static StringdelPre(String regex, CharSequence content) 删除正则匹配到的内容之前的字符 如果没有找到,则返回原文static StringdelPre(Pattern pattern, CharSequence content) 删除正则匹配到的内容之前的字符 如果没有找到,则返回原文static Stringescape(char c) 转义字符,将正则的关键字转义static String转义字符串,将正则的关键字转义static StringextractMulti(String regex, CharSequence content, String template) 从content中匹配出多个值并根据template生成新的字符串 匹配结束后会删除匹配内容之前的内容(包括匹配内容) 例如: content 2019年5月 pattern (.*?)static StringextractMulti(Pattern pattern, CharSequence content, String template) 从content中匹配出多个值并根据template生成新的字符串 例如: content 2013年5月 pattern (.*?)static StringextractMultiAndDelPre(String regex, Mutable<CharSequence> contentHolder, String template) 从content中匹配出多个值并根据template生成新的字符串 例如: content 2019年5月 pattern (.*?)static StringextractMultiAndDelPre(Pattern pattern, Mutable<CharSequence> contentHolder, String template) 从content中匹配出多个值并根据template生成新的字符串 匹配结束后会删除匹配内容之前的内容(包括匹配内容) 例如: content 2019年5月 pattern (.*?)取得内容中匹配的所有结果static <T extends Collection<String>>
T取得内容中匹配的所有结果static <T extends Collection<String>>
TfindAll(Pattern pattern, CharSequence content, int group, T collection) 取得内容中匹配的所有结果static voidfindAll(Pattern pattern, CharSequence content, Consumer<Matcher> consumer) 取得内容中匹配的所有结果,使用Consumer完成匹配结果处理取得内容中匹配的所有结果findAllGroup0(String regex, String content) 取得内容中匹配的所有结果,获得匹配的所有结果中正则对应分组0的内容findAllGroup1(String regex, String content) 取得内容中匹配的所有结果,获得匹配的所有结果中正则对应分组1的内容static Pattern先从Pattern池中查找正则对应的Pattern,找不到则编译正则表达式并入池static Pattern先从Pattern池中查找正则对应的Pattern,找不到则编译正则表达式并入池static String获得匹配的字符串static Stringget(Pattern pattern, CharSequence content, int groupIndex) 获得匹配的字符串,对应分组0表示整个匹配内容,1表示第一个括号分组内容,依次类推static Stringget(Pattern pattern, CharSequence content, String groupName) 获得匹配的字符串static voidget(Pattern pattern, CharSequence content, Consumer<Matcher> consumer) 在给定字符串中查找给定规则的字符,如果找到则使用Consumer处理之 如果内容中有多个匹配项,则只处理找到的第一个结果。static String获得匹配的字符串getAllGroupNames(String regex, CharSequence content) 获得匹配的字符串getAllGroups(Pattern pattern, CharSequence content) 获得匹配的字符串匹配到的所有分组getAllGroups(Pattern pattern, CharSequence content, boolean withGroup0) 获得匹配的字符串匹配到的所有分组getAllGroups(Pattern pattern, CharSequence content, boolean withGroup0, boolean findAll) 获得匹配的字符串匹配到的所有分组static StringgetByGroupName(String regex, CharSequence content, String groupName) 获得匹配的字符串static IntegergetFirstNumber(CharSequence stringWithNumber) 从字符串中获得第一个整数static String获得匹配的字符串,获得正则中分组0的内容static StringgetGroup0(Pattern pattern, CharSequence content) 获得匹配的字符串,,获得正则中分组0的内容static String获得匹配的字符串,获得正则中分组1的内容static StringgetGroup1(Pattern pattern, CharSequence content) 获得匹配的字符串,,获得正则中分组1的内容static MatchResultindexOf(String regex, CharSequence content) 找到指定正则匹配到字符串的开始位置static MatchResultindexOf(Pattern pattern, CharSequence content) 找到指定模式匹配到字符串的开始位置static booleanisMatch(String regex, CharSequence content) 给定内容是否匹配正则static booleanisMatch(Pattern pattern, CharSequence content) 给定内容是否匹配正则static MatchResultlastIndexOf(String regex, CharSequence content) 找到指定正则匹配到第一个字符串的位置static MatchResultlastIndexOf(Pattern pattern, CharSequence content) 找到指定模式匹配到最后一个字符串的位置static StringreplaceAll(CharSequence content, String regex, String replacementTemplate) 正则替换指定值 通过正则查找到字符串,然后把匹配到的字符串加入到replacementTemplate中,$1表示分组1的字符串 例如:原字符串是:中文1234,我想把1234换成(1234),则可以:static StringreplaceAll(CharSequence text, String regex, XFunction<Matcher, String> replaceFun) 替换所有正则匹配的文本,并使用自定义函数决定如何替换 replaceFun可以通过Matcher提取出匹配到的内容的不同部分,然后经过重新处理、组装变成新的内容放回原位。static StringreplaceAll(CharSequence content, Pattern pattern, String replacementTemplate) 正则替换指定值 通过正则查找到字符串,然后把匹配到的字符串加入到replacementTemplate中,$1表示分组1的字符串static StringreplaceAll(CharSequence text, Pattern pattern, XFunction<Matcher, String> replaceFun) 替换所有正则匹配的文本,并使用自定义函数决定如何替换 replaceFun可以通过Matcher提取出匹配到的内容的不同部分,然后经过重新处理、组装变成新的内容放回原位。
-
Constructor Details
-
PatternKit
public PatternKit()
-
-
Method Details
-
get
-
get
-
get
-
get
-
get
获得匹配的字符串,对应分组0表示整个匹配内容,1表示第一个括号分组内容,依次类推- Parameters:
pattern- 编译后的正则模式content- 被匹配的内容groupIndex- 匹配正则的分组序号,0表示整个匹配内容,1表示第一个括号分组内容,依次类推- Returns:
- 匹配后得到的字符串,未匹配返回null
-
get
获得匹配的字符串- Parameters:
pattern- 匹配的正则content- 被匹配的内容groupName- 匹配正则的分组名称- Returns:
- 匹配后得到的字符串,未匹配返回null
-
get
在给定字符串中查找给定规则的字符,如果找到则使用Consumer处理之 如果内容中有多个匹配项,则只处理找到的第一个结果。- Parameters:
pattern- 匹配的正则content- 被匹配的内容consumer- 匹配到的内容处理器
-
getGroup0
-
getGroup1
-
getGroup0
获得匹配的字符串,,获得正则中分组0的内容- Parameters:
pattern- 编译后的正则模式content- 被匹配的内容- Returns:
- 匹配后得到的字符串, 未匹配返回null
-
getGroup1
获得匹配的字符串,,获得正则中分组1的内容- Parameters:
pattern- 编译后的正则模式content- 被匹配的内容- Returns:
- 匹配后得到的字符串, 未匹配返回null
-
getAllGroups
获得匹配的字符串匹配到的所有分组- Parameters:
pattern- 编译后的正则模式content- 被匹配的内容- Returns:
- 匹配后得到的字符串数组,按照分组顺序依次列出,未匹配到返回空列表,任何一个参数为null返回null
-
getAllGroups
获得匹配的字符串匹配到的所有分组- Parameters:
pattern- 编译后的正则模式content- 被匹配的内容withGroup0- 是否包括分组0,此分组表示全匹配的信息- Returns:
- 匹配后得到的字符串数组,按照分组顺序依次列出,未匹配到返回空列表,任何一个参数为null返回null
-
getAllGroups
public static List<String> getAllGroups(Pattern pattern, CharSequence content, boolean withGroup0, boolean findAll) 获得匹配的字符串匹配到的所有分组- Parameters:
pattern- 编译后的正则模式content- 被匹配的内容withGroup0- 是否包括分组0,此分组表示全匹配的信息findAll- 是否查找所有匹配到的内容,false表示只读取第一个匹配到的内容- Returns:
- 匹配后得到的字符串数组,按照分组顺序依次列出,未匹配到返回空列表,任何一个参数为null返回null
-
getByGroupName
获得匹配的字符串- Parameters:
regex- 匹配的正则content- 被匹配的内容groupName- 匹配正则的分组名称- Returns:
- 匹配后得到的字符串,未匹配返回null
-
getAllGroupNames
获得匹配的字符串- Parameters:
regex- 匹配的正则content- 被匹配的内容- Returns:
- 命名捕获组
-
extractMulti
从content中匹配出多个值并根据template生成新的字符串 例如: content 2013年5月 pattern (.*?)年(.*?)月 template: $1-$2 return 2013-5- Parameters:
pattern- 匹配正则content- 被匹配的内容template- 生成内容模板,变量 $1 表示group1的内容,以此类推- Returns:
- 新字符串
-
extractMulti
从content中匹配出多个值并根据template生成新的字符串 匹配结束后会删除匹配内容之前的内容(包括匹配内容) 例如: content 2019年5月 pattern (.*?)年(.*?)月 template: $1-$2 return 2019-5- Parameters:
regex- 匹配正则字符串content- 被匹配的内容template- 生成内容模板,变量 $1 表示group1的内容,以此类推- Returns:
- 按照template拼接后的字符串
-
extractMultiAndDelPre
public static String extractMultiAndDelPre(Pattern pattern, Mutable<CharSequence> contentHolder, String template) 从content中匹配出多个值并根据template生成新的字符串 匹配结束后会删除匹配内容之前的内容(包括匹配内容) 例如: content 2019年5月 pattern (.*?)年(.*?)月 template: $1-$2 return 2019-5- Parameters:
pattern- 匹配正则contentHolder- 被匹配的内容的Holder,value为内容正文,经过这个方法的原文将被去掉匹配之前的内容template- 生成内容模板,变量 $1 表示group1的内容,以此类推- Returns:
- 新字符串
-
extractMultiAndDelPre
public static String extractMultiAndDelPre(String regex, Mutable<CharSequence> contentHolder, String template) 从content中匹配出多个值并根据template生成新的字符串 例如: content 2019年5月 pattern (.*?)年(.*?)月 template: $1-$2 return 2019-5- Parameters:
regex- 匹配正则字符串contentHolder- 被匹配的内容的Holder,value为内容正文,经过这个方法的原文将被去掉匹配之前的内容template- 生成内容模板,变量 $1 表示group1的内容,以此类推- Returns:
- 按照template拼接后的字符串
-
delFirst
-
delLast
删除匹配的最后一个内容- Parameters:
regex- 正则text- 被匹配的内容- Returns:
- 删除后剩余的内容
-
delLast
删除匹配的最后一个内容- Parameters:
pattern- 正则text- 被匹配的内容- Returns:
- 删除后剩余的内容
-
delAll
-
delAll
-
delPre
删除正则匹配到的内容之前的字符 如果没有找到,则返回原文- Parameters:
regex- 定位正则content- 被查找的内容- Returns:
- 删除前缀后的新内容
-
delPre
删除正则匹配到的内容之前的字符 如果没有找到,则返回原文- Parameters:
pattern- 定位正则模式content- 被查找的内容- Returns:
- 删除前缀后的新内容
-
findAllGroup0
-
findAllGroup1
-
findAll
-
findAll
public static <T extends Collection<String>> T findAll(String regex, String content, int group, T collection) 取得内容中匹配的所有结果- Type Parameters:
T- 集合类型- Parameters:
regex- 正则content- 被查找的内容group- 正则的分组collection- 返回的集合类型- Returns:
- 结果集
-
findAll
-
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:
- 结果集
-
findAll
取得内容中匹配的所有结果,使用Consumer完成匹配结果处理- Parameters:
pattern- 编译后的正则模式content- 被查找的内容consumer- 匹配结果处理函数
-
count
-
count
-
contains
指定内容中是否有表达式匹配的内容- Parameters:
regex- 正则表达式content- 被查找的内容- Returns:
- 指定内容中是否有表达式匹配的内容
-
contains
指定内容中是否有表达式匹配的内容- Parameters:
pattern- 编译后的正则模式content- 被查找的内容- 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),则可以:replaceAll("中文1234", "(\\d+)", "($1)")) 结果:中文(1234)- Parameters:
content- 文本regex- 正则replacementTemplate- 替换的文本模板,可以使用$1类似的变量提取正则匹配出的内容- Returns:
- 处理后的文本
-
replaceAll
正则替换指定值 通过正则查找到字符串,然后把匹配到的字符串加入到replacementTemplate中,$1表示分组1的字符串- Parameters:
content- 文本pattern-PatternreplacementTemplate- 替换的文本模板,可以使用$1类似的变量提取正则匹配出的内容- Returns:
- 处理后的文本
-
replaceAll
public static String replaceAll(CharSequence text, String regex, XFunction<Matcher, String> replaceFun) 替换所有正则匹配的文本,并使用自定义函数决定如何替换 replaceFun可以通过Matcher提取出匹配到的内容的不同部分,然后经过重新处理、组装变成新的内容放回原位。replaceAll(this.content, "(\\d+)", parameters -> "-" + parameters.group(1) + "-") 结果:"ZZZaaabbbccc中文-1234-"- Parameters:
text- 要替换的字符串regex- 用于匹配的正则式replaceFun- 决定如何替换的函数- Returns:
- 替换后的文本
-
replaceAll
public static String replaceAll(CharSequence text, Pattern pattern, XFunction<Matcher, String> replaceFun) 替换所有正则匹配的文本,并使用自定义函数决定如何替换 replaceFun可以通过Matcher提取出匹配到的内容的不同部分,然后经过重新处理、组装变成新的内容放回原位。replaceAll(this.content, "(\\d+)", parameters -> "-" + parameters.group(1) + "-") 结果:"ZZZaaabbbccc中文-1234-"- Parameters:
text- 要替换的字符串pattern- 用于匹配的正则式replaceFun- 决定如何替换的函数,可能被多次调用(当有多个匹配时)- Returns:
- 替换后的字符串
-
escape
-
escape
-
getFirstNumber
从字符串中获得第一个整数- Parameters:
stringWithNumber- 带数字的字符串- Returns:
- 整数
-
indexOf
找到指定正则匹配到字符串的开始位置- Parameters:
regex- 正则content- 字符串- Returns:
- 位置,
null表示未找到
-
indexOf
找到指定模式匹配到字符串的开始位置- Parameters:
pattern- 模式content- 字符串- Returns:
- 位置,
null表示未找到
-
lastIndexOf
找到指定正则匹配到第一个字符串的位置- Parameters:
regex- 正则content- 字符串- Returns:
- 位置,
null表示未找到
-
lastIndexOf
找到指定模式匹配到最后一个字符串的位置- Parameters:
pattern- 模式content- 字符串- Returns:
- 位置,
null表示未找到
-
clear
public void clear()清空缓存池
-