public class MainUtil {
public static void main(String[] args) {
refGroup();
}
// split 高级用法,保留分隔词
// 使用场景: 需要对分隔符做对应解析
static void splitWith(){
String rawStr = "1,2,3";
Arrays.asList(rawStr.split("(?=,)")).forEach(System.out::println);
}
// group 跨越分组
// 使用场景: 正则需要使用分组的|功能,但是又不希望计入分组计数
static void groupOver(){
String rawStr = "abc123ab123";
Pattern pattern=Pattern.compile("[a-z]+[0-5]+(?:ab|cd)?([0-9]+)");
Matcher matcher = pattern.matcher(rawStr);
while (matcher.find()) {
System.out.println(matcher.group(1));
}
}
//正则匹配并替换
// 使用场景: 一帮用于变量替换
static void regexReplace(){
String rawStr = "____${a}--${b}____";
Pattern pattern = Pattern.compile("\\$\\{(\\w+)\\}");
Matcher matcher = pattern.matcher(rawStr);
StringBuffer sb = new StringBuffer();
while (matcher.find()){
matcher.appendReplacement(sb,matcher.group(1).toUpperCase());
}
matcher.appendTail(sb);
System.out.println(sb.toString());
}
//分组引用
static void refGroup(){
String rawStr = "abc123tttabc";
Pattern pattern = Pattern.compile("([a-z]+)\\d+[a-z]+?\\1");
System.out.println(pattern.matcher(rawStr).matches());
System.out.println(rawStr.replaceAll("\\d+","_$0_"));
}
}
正则使用二三例
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 《狱门岛》 《占星术杀人魔法》 《嫌疑人X的献身》
- 小学语文修改病句的方法 修改病句是小学语文考试中常见的题型,在修改病句之前,我们应该清晰的了解有哪些病句现象,下面...
- 正则表达式 前言 正则表达式应用广泛,在绝大多数的编程语言都可以完美应用,在Linux中,也有着极大的用处。使用正...
- 如果不了解正则表达式的同学可以百度一下。 一、在Xcode中用正则搜索 1、用正则表达式在Xcode中查找文本 大...