hansheng1988

正则表达式可以简单的理解为符合一定规则的表达式,专门用来操作字符串。通过正则表达式可以用一些特定的符号来进行一些代码操作,简化了对复杂字符串的操作。比直接用string类的方法进行组合操作简单很多,使用的代码也少很多。

具体的功能有:

1.匹配

使用String类的matches方法可以进行整个字符串的匹配,判断某些字符串是否符合相关的规则。只要有一处不符合规则就会返回false,如果都符合返回true。如:

public static void main(String[] args) {//用来判断是否是电话号码

String str = ”13697350000”;//被匹配的字符串

String regex =”1[3458][\\d]{9}”; // 定义正则表达式,即匹配规则

Boolean b =str.matches(regex);// 通过matches方法进行判断str是否符合regex制定的规则

System.out.println(b);//matches()方法返回的是boolean值

}

 

在用matches方法进行判断时,会从字符串开始处依次向下进行匹配,当发现不匹配时,匹配结束,后面的字符不会进行匹配了。

2.切割

使用string类的split()方法对字符串进行切割(split中的参数是正则表达式),可以进行复杂的字符串切割。

public static void main(String[] args) {//用来切割一串数字,去除多余的空格

String str =” 1 2    3   4  4”;

String regex=” +”;

String [] arr = str. split(regex); //split ()方法返回的是字符串数组

                        //注意分隔符部分不会进入arr数组中      

for( String s:arr ){

System.out.println(s);//打印出数字中的每个元素

}

 

}

 

3.替换

使用string类的replacAll(),使用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串。replaceAll方法的参数有两个,第一个是正则表达式,用于定义被替换字符串的规则,第二个参数是替换的字符串。

public static void main(String[] args){//替换掉字符串中叠词的重复部分

String str =”呜呜呜啊啊啊啊额鹅鹅鹅”;

String strnew= str.replaceAll( “(.)\\1+”,”$1”);//替换掉重复部分,$1表示取前一个规则的第一组

System.out.println(strnew);//打印出新的字符串

 

}

 

 

4.获取

将字符串中符合正则表达式的规则字符串取出来。获取的步骤是:

  1. 将正则表达式封装成对象;
  2. 让正则表达式和要操作的字符串相关联;
  3. 关联后,获取正则匹配引擎 ;
  4. 通过引擎对符合规则的字符串进行操作,比如取出。

(其实前三个功能也可以用这个步骤进行处理,只是最后一步不同。这样变复杂了,所以前三个功能没有使用这个步骤,而是简化了操作。)

public static void main(String[] args){//将一句话中有四个字母的单词

String str =” ming tian jiu yao fang jia le ”;

String reg =”\\b[a-x]{4}\\b”;

Patter  p =Patter.complie(reg);//将规则封装成对象

Matcher  m =p.matcher(str);//让正则表达式和要操作的字符串相关联,获取匹配器对象

System.out.println(m.matches());//其实string类中的matches方法、replaceAll()方法,用的就是Pattern和Matcher对象来完成的。只是被String的方法封装了,用起来比较简单。

while(m,find()){

Boolean b =m.find();将规则作用到字符串上,并进行符合规则的子串查找

System.out.println(m.group());//用于获取匹配后的字符串

System.out.println(m.start() +”….” + m.end());//用于获取匹配后的字符串的索引位置

}

}

  

 

分类:

技术点:

相关文章:

  • 2022-12-23
  • 2021-06-04
  • 2022-12-23
  • 2021-11-22
  • 2021-11-03
  • 2022-01-15
  • 2022-12-23
  • 2021-11-04
猜你喜欢
  • 2021-10-09
  • 2021-10-15
  • 2022-12-23
  • 2021-12-26
  • 2021-10-19
  • 2021-10-19
相关资源
相似解决方案