【学习笔记⑤】正则表达式

前端之家收集整理的这篇文章主要介绍了【学习笔记⑤】正则表达式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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,中的数字去除代码如下:

  1. package com.regex.practise;
  2. import java.util.regex.Pattern;
  3.  
  4. public class RegexDemo2 {
  5. public static void main(String[] args) {
  6. String str="ab233daad32ddd54434da434";
  7. Pattern p =Pattern.compile("\\d+");
  8. String c[]=p.split(str);
  9. for(int x=0;x<c.length;x++){
  10. System.out.print(c[x]);
  11. }
  12. }//结果abdaaddddda
  13.  
  14.  
  15. }
2、Matcher 类主要是进行验证和替换功能的操作。主要的方法如下:

①matchers()方法,返回值类型为boolean

②replaceAll(String replacement)方法,返回值为String类型

③replaceFirst(String replacement)方法,返回值为String类型。

例题:进行字符串额验证,是否符合”xxx-xx-xxx“形式,代码如下:

  1. package com.regex.practise;
  2. import java.util.regex.Matcher;
  3. import java.util.regex.Pattern;
  4.  
  5. public class RegexDemo3 {
  6. public static void main(String[] args) {
  7. String str="111-22-333";//定义字符串
  8. String pat="\\d{3}-\\d{2}-\\d{3}";
  9. Pattern p=Pattern.compile(pat);
  10. Matcher m=p.matcher(str);
  11. if(m.matches()){
  12. System.out.println("验证合法");
  13. }else {
  14. System.out.println("验证不合法");
  15. }
  16. }
  17. }

2.String类对正则的支持(重点)

在String类中有以下 的方法对后勤的支持方法如下:

①matchers(String regex)方法,返回值类型为boolean类型。

@H_403_105@ ②replaceAll(String regex,String replacement)方法,返回值为String类型。

@H_403_105@ ③replaceFirst(String regex,String replacement)方法,返回值为String类型

④split(String regex)方法,返回值类型为String数组类型。

注:@H_403_105@在开发中如果要想使用正则,基本上都是直接应用String类,很少去直接使用pattern类或者matcher类。代码如下:

@H_403_105@@H_403_105@

  1. package com.regex.practise;
  2.  
  3. import java.util.regex.Matcher;
  4. import java.util.regex.Pattern;
  5.  
  6. public class RegexDemo2 {
  7. public static void main(String[] args) {
  8. String str="ab233daad32ddd54434da434";
  9. Pattern p =Pattern.compile("\\d+");
  10. //替换方法一,用matcher类
  11. Matcher m=p.matcher(str);
  12. String str1 =m.replaceAll("※");
  13. System.out.println(str1);//结果ab※daad※ddd※da※
  14. System.out.println();
  15. //方法二用String类
  16. String str2=str.replaceAll("\\d+","※");//结果 ab※daad※ddd※da※
  17. System.out.println(str2);
  18. }
  19. }
@H_403_105@

例题:@H_403_105@验证邮箱是否合法,代码如下:

  1. @H_403_105@package com.regex.practise;
  2.  
  3. public class Stringregex2 {
  4.  
  5. public static void main(String[] args) {
  6. String email="dui1cuo@126.com";
  7. boolean x=email.matches("\\S+@+\\S+.(com|com.cn|net.cn|cn|net|edu)");
  8. System.out.println(x);//true,\S表示非空白字符
  9. }
  10. }
  11.  


注:正则表达式可以方便的完成验证的操作,是一组标准性的规范,在各种语言中都可以使用

猜你在找的正则表达式相关文章