java中关于正则表达式的基本使用

概述,当对一个字符串的操作处理逻辑非常复杂,代码量大时可以采取正则表达式的方式来对字符串进行处理,但也有缺点,就是要熟悉各字符,符号及符号组合的意义需要经常使用才能孰能生巧

一.正则表达式的特点

1.作用:符合一定规则的表达式,用于专门操作字符串

2.特点:用于一些特定的符号来表示一些代码操作

3.好处:可以简化对字符串的复杂操作

二.匹配功能

1.定义:String matches方法,用规则匹配整个字符串,只要有一处不符合规则,就匹配结束,返回false

 1 public static void checkQQ(){
 2         String qq="123456a";
 3         String regex="[1-9][0-9]{4,14}";
 4         boolean flag=qq.matches(regex);
 5         if(flag){
 6             System.out.println(qq+"is ok...");
 7         }else{
 8             System.out.println(qq+"输入错误");
 9         }
10     }

1 public static void demo(){
2         String str="b23a23456789";
3         String reg="[a-zA-Z]\\d{2}[a-z]\\d*";
4         boolean flag=str.matches(reg);
5         System.out.println(flag);
6     }

该方法不使用正则表达式,操作复杂,代码量大
public static void checkQQ_1(){
        String qq="";
        int len=qq.length();
        if(len>=5&&len<=15){
            if(!qq.startsWith("0")){
                try {
                    long l=Long.parseLong(qq);
                    System.out.println("qq:"+qq);
                } catch (Exception e) {
                    // TODO: handle exception
                    System.out.println("出现非法字符");
                }
                /*char arr[]=qq.toCharArray();
                boolean flag=false;
                for (int i = 0; i < arr.length; i++) {
                    if(!(arr[i]>=‘0‘&&arr[i]<=‘9‘)){
                        flag=false;
                        break;
                    }
                }
                if(flag){
                    System.out.println("qq:"+qq);
                }else{
                    System.out.println("非法字符");
                }*/
            }else{
                System.out.println("qq不能以0开头");
            }
        }else{
            System.out.println("长度错误");
        }
    }

三.切割

1.String sprit();

1 public static void splitDemo(String str,String reg){
2         //String reg=" +";//按多个空格来进行切割
3         String[] attr=str.split(reg);
4         System.out.println(attr.length);
5         for (String s : attr) {
6             System.out.println(s);
7         }
8     }

四.替换

1.String replaceAll()

1 public static void replaceAllDemo(String str,String regex,String newStr){
2         str=str.replaceAll(regex, newStr);
3         System.out.println(str);
4     }

五.获取

1.定义:将字符串中符合规则的子串取出

2.操作步骤

2.1 将正则表达式封装成对象

2.2 让正则对象和要操作的字符串相关联

2.3 关联后,获取正则匹配引擎

2.4 通过引擎对符合规则的子串进行操作,比如取出

 1 public static void getDemo(){
 2         String str="ming tian yao fang jia le,da jia. ";
 3         String reg="\\b[a-z]{3}\\b";//\b代表单词边界
 4         //将规则封装成对象
 5         Pattern p=Pattern.compile(reg);
 6         //让正则对象和要作用的字符串相关联,获取匹配器对象
 7         Matcher m=p.matcher(str);
 8         System.out.println(m.matches());//其实String类中的matches方法,用的就是Pattern和Matcher对象来完成的
 9                                         //只不过被String类的方法封装后,用起来比较简单,但是功能却单一
10         //boolean b=m.find();//将规则作用到字符串上,进行符合规则的子串查找
11         //System.out.println(b);
12         //System.out.println(m.group());//用于获取匹配后的结果
13         while(m.find()){
14             System.out.println(m.group());
15             System.out.println(m.start()+"...."+m.end());
16         }
17
18     }

六.正则表达式功能的选择

1.判断字符串是否正确,匹配功能

2.将字符串变成另一个字符串,替换功能

3.按照指定的方式将字符串变成多个字符串,切割功能

4.得到符合需求的字符串子串,获取功能

--------------------------------------技术改变生活,知识改变命运!

时间: 2024-12-30 03:46:51

java中关于正则表达式的基本使用的相关文章

java 中的正则表达式

一. 什么是正则表达式? 正则表达式是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”).模式描述在搜索文本时要匹配的一个或多个字符串. 二.正则表达式语法参考: https://msdn.microsoft.com/zh-cn/library/ae5bf541(VS.80).aspx.    三.  正则表达式规则的例子: /^(/d{3}-|/d{4}-)?(/d{8}|/d{7})?$/    //国内电话 /^[1-9]*[1-9][0-9]*$/  

9.JAVA中的正则表达式

一.JAVA中的正则表达式 1.概念:以某种特定的方式描述字符串 1.Java中正则表达式的规则 ?          #{0,1}-?有一个-或者没有 \\           #表示一个”\" \\d         #表示一个数字 \\D       #非数字 f\\W+    #表示f开头的单词 \\W       #表示一个非单词字符 \\w       #表示一个单词字符[0-9A-Za-z-]包含’-’ \\s        #空白符号 \\S       #非空白符号 (-|\\

JAVA中的正则表达式--待续

1.关于“\”,在JAVA中的正则表达式中的不同: 在其他语言中"\\"表示为:我想要在正则表达式中插入一个普通的反斜杠: 在Java中“\\”表示为:我想要插入一个正则表达式反斜杠: eg:验证整数的正则表达式为\\d; 如果想要插入一个反斜杠则为:\\\\ : 如果是换行符和制表符则为\n 和\t : 2.特殊字符 Greedy 数量词 X? X,一次或一次也没有 X* X,零次或多次 X+ X,一次或多次 X{n} X,恰好 n 次 X{n,} X,至少 n 次 X{n,m} X

在java中使用正则表达式注意的地方

1. 对^与$的理解 通常我们会通过类似Matcher matcher = Pattern.compile(regex).matcher(string);的代码去拿到一个Matcher对象.这种情况下regex中的^与$匹配的是整个待匹配串string的开头与结尾.而要使^与$去匹配每一行的开始与结尾,则要使用Pattern.MULTILINE.即:Matcher matcher = Pattern.compile(regex, Pattern.MULTILINE).matcher(string

java中的正则表达式(一)

最近在学习springMVC的源码并尝试从零开发一下web框架.在学习用遇到了一个拦路虎————正则表达式.在我平时的开发工作中对于正则表达式的使用并不是很频繁,可以说是几乎不用,即使用到了都是通过上网百度查询,久而久之正则表达式成了我的短板(虽然这块短板还没有影响我的工作).在看了springMVC的框架后发现,其实正则表达式在封装框架中起着至关重要的作用,因此熟练的掌握正则表达式可以帮助我们学习底层的代码逻辑. 正则表达式:是一串字符,它描述了一种文本模式.这句话取自java编程的逻辑.正则

JAVA中的正则表达式简介

正则表达式 作用:验证某个字符串是否符合某种规则 代码: //1.正则表达式验证的规则 String reg = "正则表达式": //Pattern,Matcher在java.util包中 //2.编译正则表达式规则 Pattern pattern = Pattern.compile(reg); //3.规则和字符串进行验证比较 Matcher m = pattern.matcher("比较的字符串"); //4.验证 //.matches()/全匹配..fing

java中的正则表达式

正则表达式 : 正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串.将匹配的子串替换或者从某个串中取出符合某个条件的子串等. 一些字符所代表的意思: \        将下一字符标记为特殊字符.文本.反向引用或八进制转义符^       匹配输入字符串开始的位置$       匹配输入字符串结尾的位置.        匹配任何单个字符\s      空白(空格符.换行符.回车符.制表符)\S     非空白[]  

java中的正则表达式实例

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 8

java中测试正则表达式

import java.util.regex.*; public class TestRegularExpression { public static void main(String[] args) { if (args.length < 2) { System.out.println("Usage:\n" + "java TestRegularExpression " + "characterSequence regularExpression