【学习笔记⑤】正则表达式
1.所用到的正则表达式,都在java.util.regex包中的pattern类中,下面是常用的字符匹配: 1.常用的字符类匹配如下
2.怎样使用正则表达式。 1.指定为字符串的正则表达式必须首先被比编译为此类的实例。然后,可将得到的模式用于创建Matcher对象,依照正则表达式,该对象可以与任意字符序列匹配,执行匹配所涉及的所有状态都驻留在匹配器中,所有 的匹配器可以共用同一种模式。最典型的调用顺序是: Pattern p =Pattern.compile("a*b"); Matcher m =p.matcher("aaaaaab"); boolean b =m.mathcher(); 注: Pattern类是正则操作的最重要的一个类(主要是定义规范并进行字符串拆分工作),所有正则规范都要在Pattern类中进行指定,此类常用方法如下: 1、compile(String regex)方法,返回值为Pattern对象 2、matcher(CharSquence input) 方法,返回值为Matcher对象 3、split(CharSquence input)方法,返回值为String数组类型 4、pattern()方法,返回值使用的正则表达式。 例题:把字符串ab233daad32ddd54434da434,中的数字去除。代码如下: package com.regex.practise; import java.util.regex.Pattern; public class RegexDemo2 { public static void main(String[] args) { String str="ab233daad32ddd54434da434"; Pattern p =Pattern.compile("d+"); String c[]=p.split(str); for(int x=0;x<c.length;x++){ System.out.print(c[x]); } }//结果abdaaddddda }2、Matcher 类主要是进行验证和替换功能的操作。主要的方法如下: ①matchers()方法,返回值类型为boolean ②replaceAll(String replacement)方法,返回值为String类型 ③replaceFirst(String replacement)方法,返回值为String类型。 例题:进行字符串额验证,是否符合”xxx-xx-xxx“形式,代码如下: package com.regex.practise; import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexDemo3 { public static void main(String[] args) { String str="111-22-333";//定义字符串 String pat="d{3}-d{2}-d{3}"; Pattern p=Pattern.compile(pat); Matcher m=p.matcher(str); if(m.matches()){ System.out.println("验证合法"); }else { System.out.println("验证不合法"); } } } 2.String类对正则的支持(重点) 在String类中有以下 的方法对后勤的支持,方法如下: ①matchers(String regex)方法,返回值类型为boolean类型。 ②replaceAll(String regex,String replacement)方法,返回值为String类型。 ③replaceFirst(String regex,String replacement)方法,返回值为String类型 ④split(String regex)方法,返回值类型为String数组类型。 注:在开发中如果要想使用正则,基本上都是直接应用String类,很少去直接使用pattern类或者matcher类。代码如下:
package com.regex.practise; import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexDemo2 { public static void main(String[] args) { String str="ab233daad32ddd54434da434"; Pattern p =Pattern.compile("d+"); //替换方法一,用matcher类 Matcher m=p.matcher(str); String str1 =m.replaceAll("※"); System.out.println(str1);//结果ab※daad※ddd※da※ System.out.println(); //方法二用String类 String str2=str.replaceAll("d+","※");//结果 ab※daad※ddd※da※ System.out.println(str2); } } 例题:验证邮箱是否合法,代码如下:
package com.regex.practise;
public class Stringregex2 {
public static void main(String[] args) {
String email="dui1cuo@126.com";
boolean x=email.matches("S+@+S+.(com|com.cn|net.cn|cn|net|edu)");
System.out.println(x);//true,S表示非空白字符
}
}
注:正则表达式可以方便的完成验证的操作,是一组标准性的规范,在各种语言中都可以使用。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |