java程序中使用正则表达式
//-------------------------matcher()-方法---------------
package java_261_正则表达式_java编程中的使用_查找_替换_分割_练习;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Demo01 {
public static void main(String[] args) {
//在这个字符串:asfsdf23323;是否符合指定的正则表达式\w+
//表达式对象; Pattern模式;compile编译;
Pattern p = Pattern.compile("\w+"); //这个就代表正则表达式;写入\w+;注意:在java中\变2个
//创建(Matcher)匹配对象
Matcher m = p.matcher(“asfsdf23323”);//Matcher匹配器;"asfsdf23323"目标字符串
boolean yesorno = m.matches();//yesorno是或不是;返回布尔变量;matches()匹配的是整个字符序列
System.out.println(yesorno);
Matcher m2 = p.matcher("asfsdf2&&3323");
boolean yesorno2 = m2.matches();
System.out.println(yesorno2);
}
}
//-----------------------------结果-------------
//---------------find()方法----------------------
package java_261_正则表达式_java编程中的使用_查找_替换_分割_练习;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Demo01 {
public static void main(String[] args) {
//在这个字符串:asfsdf23323;是否符合指定的正则表达式\w+
//表达式对象; Pattern模式;compile编译;
Pattern p = Pattern.compile("\w+"); //这个就代表正则表达式;写入\w+;注意:在java中\变2个
//创建(Matcher)匹配对象
//Matcher m = p.matcher(“asfsdf23323”);//Matcher匹配器;"asfsdf23323"目标字符串
//boolean yesorno = m.matches();//yesorno是或不是;返回布尔变量;matches()匹配的是整个字符序列
//System.out.println(yesorno);
Matcher m2 = p.matcher("asfsdf2&&3323");
//boolean yesorno2 = m2.matches();
//System.out.println(yesorno2);
System.out.println("====================");
System.out.println(m2.find());//find查找;该方法扫描输入的序列,查找与该模式匹配的下一个序列;第一次找到asfsdf2符合条件true
System.out.println(m2.find());//第二次找到3323符合条件true
System.out.println(m2.find());//第三次表示没有匹配的下一个序列 false
System.out.println(m2.find());//同理
}
}
//----------------------结果-------------
//-------------------分次方法打印-------------------
package java_261_正则表达式_java编程中的使用_查找_替换_分割_练习;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Demo01 {
public static void main(String[] args) {
//在这个字符串:asfsdf23323;是否符合指定的正则表达式\w+
//表达式对象; Pattern模式;compile编译;
Pattern p = Pattern.compile("\w+"); //这个就代表正则表达式;写入\w+;注意:在java中\变2个
//创建(Matcher)匹配对象
//Matcher m = p.matcher(“asfsdf23323”);//Matcher匹配器;"asfsdf23323"目标字符串
//boolean yesorno = m.matches();//yesorno是或不是;返回布尔变量;matches()匹配的是整个字符序列
//System.out.println(yesorno);
Matcher m2 = p.matcher("asfsdf2&&3323");
//boolean yesorno2 = m2.matches();
//System.out.println(yesorno2);
/*System.out.println("====================");
System.out.println(m2.find());//find查找;该方法扫描输入的序列,查找与该模式匹配的下一个序列;第一次找到asfsdf2符合条件true
System.out.println(m2.find());//第二次找到3323符合条件true
System.out.println(m2.find());//第三次表示没有匹配的下一个序列 false
System.out.println(m2.find());//同理
*/
System.out.println(m2.find());
System.out.println(m2.group());//group分组
System.out.println(m2.find());//有没有下一个
System.out.println(m2.group());//找到的打印出来
}
}
//-------------------结果---------------
//----------------------循环方法打印--------------------------
package java_261_正则表达式_java编程中的使用_查找_替换_分割_练习;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Demo01 {
public static void main(String[] args) {
//在这个字符串:asfsdf23323;是否符合指定的正则表达式\w+
//表达式对象; Pattern模式;compile编译;
Pattern p = Pattern.compile("\w+"); //这个就代表正则表达式;写入\w+;注意:在java中\变2个
//创建(Matcher)匹配对象
//Matcher m = p.matcher(“asfsdf23323”);//Matcher匹配器;"asfsdf23323"目标字符串
//boolean yesorno = m.matches();//yesorno是或不是;返回布尔变量;matches()匹配的是整个字符序列
//System.out.println(yesorno);
Matcher m2 = p.matcher("asfsdf2&&3323");
//boolean yesorno2 = m2.matches();
//System.out.println(yesorno2);
/*System.out.println("====================");
System.out.println(m2.find());//find查找;该方法扫描输入的序列,查找与该模式匹配的下一个序列;第一次找到asfsdf2符合条件true
System.out.println(m2.find());//第二次找到3323符合条件true
System.out.println(m2.find());//第三次表示没有匹配的下一个序列 false
System.out.println(m2.find());//同理
*/
/*System.out.println(m2.find());
System.out.println(m2.group());//group分组
System.out.println(m2.find());//有没有下一个
System.out.println(m2.group());//找到的打印出来
*/
//用循环方式
while(m2.find()){
System.out.println(m2.group());//group(),group(0)都是匹配整个表达式的字符串
System.out.println(m2.group(0));
}
}
}
//------------------结果--------------
//-----------------------对象分组查找方法----------------
package java_261_正则表达式_java编程中的使用_查找_替换_分割_练习;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
-
测试正则表达式对象分组的处理
*/
public class Demo03 {
public static void main(String[] args) {
//在这个字符串:asfsdf23323;是否符合指定的正则表达式\w+
//表达式对象; Pattern模式;compile编译;
Pattern p = Pattern.compile("([a-z]+)([0-9]+)"); //这个就代表正则表达式;写入\w+;注意:在java中\变2个Matcher m2 = p.matcher("aa232**ssd445*sds223"); //用循环方式 while(m2.find()){ //分组查找 System.out.println(m2.group());//group(),group(0)都是匹配整个表达式的字符串 //System.out.println(m2.group(0)); System.out.println(m2.group(1)); System.out.println(m2.group(2)); }
}
}
//---------------------结果-------------------------------------
//---------------------替换方法--------------------------
package java_261_正则表达式_java编程中的使用_查找_替换_分割_练习;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
-
测试正则表达式对象其他用法
*/
public class Demo03 {
public static void main(String[] args) {
//在这个字符串:asfsdf23323;是否符合指定的正则表达式\w+
//表达式对象; Pattern模式;compile编译;
Pattern p = Pattern.compile("[0-9]"); //这个就代表正则表达式;写入\w+;注意:在java中\变2个Matcher m2 = p.matcher("aa232**ssd445*sds223"); //替换;把数字替换为符号 String newStr = m2.replaceAll("#");//替换后返回新的字符串 System.out.println(newStr);
}
}
//-------------------------结果------------
//------------------分割方法---------------------
package java_261_正则表达式_java编程中的使用_查找_替换_分割_练习;
import java.util.Arrays;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import com.sun.corba.se.impl.resolver.SplitLocalResolverImpl;
/**
-
测试正则表达式对象其他用法
*/
public class Demo04 {
public static void main(String[] args) {
//字符串
String str = “a,b,c”;
//分割
String[] arrs = str.split(",");//返回字符串数组
//打印
System.out.println(Arrays.toString(arrs));//按数字边界进行分割 System.out.println("====按数字边界进行分割====="); String str1 = "a232b4334c34334"; //分割 String[] arrs1 = str1.split("\\d+"); //打印 System.out.println(Arrays.toString(arrs1));
}
}
//---------------------结果-----------------------------