关于本篇其实菜鸟教程有详细的介绍,以及在各个语言中的引用
我就在java方面敲了几个简单的小例子,先够自己简单的使用
package com.tk.re;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 正则表达式基本用法
* @data :2019-4-25下午12:12:41
* @author :田坤
*/
public class Demo1 {
public static void main(String args[]) {
//需要用正则来查找的字符串
String str="abc12de@34fg56";
//表达式对象
Pattern p = Pattern.compile("\\w+");
//创建Machter对象
Matcher m = p.matcher(str);
//尝试将整个字符串与该模式匹配
/* boolean b = m.matches();
System.out.println(b);*/
//find为扫描输入序列,查找模式匹配的下一个序列
System.out.println(m.find());
//group返回找到的匹配的字符串
System.out.println(m.group());
while(m.find()){
System.out.println(m.group());
}
}
}
true
abc12de
34fg56
package com.tk.re;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 正则表达式的分组
* @data :2019-4-25下午12:26:43
* @author :田坤
*/
public class Demo2 {
public static void main(String args[]) {
String str = "12aa**34bb**56cc";
//获取表达式对象
Pattern p = Pattern.compile("([0-9]+)([a-z]+)");
//创建Matcher对象
Matcher m = p.matcher(str);
while(m.find()){
System.out.println(m.group());
System.out.println(m.group(1));
System.out.println(m.group(2));
}
}
}
12aa
12
aa
34bb
34
bb
56cc
56
cc
package com.tk.re;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 正则表达式的替换
* @data :2019-4-25下午12:27:35
* @author :田坤
*/
public class Demo3 {
public static void main(String args[]) {
//将字符串中的字母替换为数字0
String str="111aa222bb333";
Pattern p = Pattern.compile("[a-z]+");
Matcher m = p.matcher(str);
String replaceAll = m.replaceAll("0");
System.out.println(replaceAll);
}
}
package com.tk.re;
/**
* 正则表达式的分割
* @data :2019-4-25下午12:32:14
* @author :田坤
*/
public class Demo4 {
public static void main(String args[]) {
//将字符串按字母分割
String str="111aa222bb333";
String[] split = str.split("[a-z]+");
for (String string : split) {
System.out.println(string);
}
}
}