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中查找文本 大...