首页 > 其他分享 >正则表达式

正则表达式

时间:2023-10-14 09:14:35浏览次数:34  
标签:字符 abc 匹配 正则表达式 matcher test Z0

1、正则表达式(Regular Expression) 功能是⽤于处理⽂本,包括,查找,替换,删除。

2、在java中,正则表达式是⼀个专门⽤于处理⽂本的对象。

3、正则表达式表现是⼀个字符串,是普通字符和特殊字符共同构成。

4、普通字符包括原义字符和⾮打印字符。

  1. 原义字符:指字⾯ 的含义保存不变的字符,⽐如 a b c 1 2
  2. ⾮打印字符: 指转义字符 ⽐如 \n换⾏ \t \r回车

5、特殊字符,即元字符,是指在正则表达式中具有特定含义的字符

6、正则表达式的核⼼对象在java.util.regex包中。

  1. Pattern 表示⼀个正则表达式,也称为匹配模式。
  2.  Matcher 表⽰正则表达的匹配结果。

7、常⽤的元字符。

  1.  

  2.  

    package com.demo01;
    
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    public class Demo01 {
        public static void main(String[] args) {
    //        //创建一个正则表达式的模式对象
    //        Pattern pattern =Pattern.compile("abc");
    //        //获取模式的匹配对象
    //        Matcher matcher = pattern.matcher("abc");
    //        //判断是否匹配成功
    //        boolean matches =matcher.matches();
    //        System.out.println(matches?"匹配":"不匹配");
            // \w匹配任意字母数字 等价于[a-zA-Z0-9]  * 匹配前面表达式任意次
    //        Pattern pattern1 = Pattern .compile("h\\w*llo");
    //        Pattern pattern2 = Pattern.compile("h[a-z]*llo");
    //        Matcher matcher1 = pattern1.matcher("hesgfdgsdfgllo");
    //        if (matcher1.matches()){
    //            System.out.println("匹配:"+matcher1.group());
    //        }else {
    //            System.out.println("不匹配");
    //        }
            //普通字符之原义字符
            test("1234abcdABCD@","1234abcdABCD@");
            //普通字符之转义字符
            test("\n","\n");
            //特殊字符[xyz]表示字符集合,匹配中括号所包含的任意字符
            test("[abc][mno][xyz]","amy");
            test("[abc][mno][xyz]","box");
            test("[abc][mno][xyz]","cnzz");
            //[a-z]
            test("[a-z][a-z]","aa");
            test("[a-z][a-z]","zz");
            test("[a-z][a-z]","AA");
            //[^xyz]表示匹配非xyz集合中的字符
            test("[^a-c][^2-8][^e-m]","f0z");
            test("[^a-c][^2-8][^e-m]","fzz");
            test("[^a-c][^2-8][^e-m]","c0e");
            //x|y表示表达式x或y
            test("ab[c-g]|uv[h-k]","add");
            test("ab[c-g]|uv[h-k]","uvk");
            //. 匹配除换行符\n之外的任意单字符
            test(".....","abcde");
            test(".....","12abc");
            test("12.345","12a345");
            System.out.println("===============");
            //? 匹配前边表达式0或1次
            test("ba?","b");
            test("a?","a");
            test("a?","aa");
            test("a?","aaa");
            //() 标记表达式的开始和结束
            test("(ab)?","");
            test("(ab)?","ab");
            test("(ab)?","a");
            test("(ab)?","b");
            test("(ab)?","abc");
            //* 匹配前边表达式任意次
            test("a*","");
            test("a*","a");
            test("a*","aa");
            test("a*","ab");
            System.out.println("============");
            //+ 匹配前边表达式1次到多次
            test2("a+","abaabaaab");
            System.out.println("=========");
            //{m,n} 最小匹配m次且最多匹配n次(连续)
            test2("a{3,5}","aa");
            test2("a{3,5}","aaa");
            test2("a{3,5}","aaaa");
            test2("a{3,5}","aaaaa");
            test2("a{3,5}","aaaaaa");
            System.out.println("-------");
            test2("a{3,5}","aaaaabaaacaaaad");
            System.out.println("-----------");
            //^ 匹配字符串的起始位置  $匹配字符串的结束位置
            test("^abc$","abc");
            test("^abc$","abc1234");
            test("^abc$","aabc");
            // \d 匹配数字 等价于[0-9]
            test("[0-9][0-9][0-9]","123");
            test("\\d\\d\\d","123");
            test("\\d{3}","123");
            // \D 匹配非数字 等价于[^\d]  [^0-9]
            test("[^0-9][^0-9][^0-9]","abc");
            test("[^\\d][^\\d][^\\d]","abc");
            test("\\D\\D\\D","abc");
            test("\\D{3}","abc");
            // \w 匹配任意字母和数字 等价于[a-zA-Z0-9]
            test("[A-Z0-9a-z][A-Z0-9a-z][A-Z0-9a-z]","1aA");
            test("[a-zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9]","1aA");
            test("[0-9A-Za-z][0-9A-Za-z][0-9A-Za-z]","1aA");
            test("\\w\\w\\w","1aA");
            test("\\w*","1aA");
            // \W 不匹配任意字母和数字 等价于[^a-zA-Z0-9]
            test("[^A-Z0-9a-z][^A-Z0-9a-z][^A-Z0-9a-z]","我和你");
            test("[^A-Z0-9a-z][^A-Z0-9a-z][^A-Z0-9a-z]","&*(");
            test("\\W\\W\\W","&*(");
            test("\\W{3}","&*(");
            // \s 匹配空白字符
            test("\\s","");
            test("\\s"," ");
            test("\\s","\t");
            test("\\s","\n");
            // \S 匹配非空白字符
            test("\\S","a");
    
        }
        //局部匹配
        public static void test2(String str1,String str2){
            Pattern pattern = Pattern.compile(str1);
            Matcher matcher = pattern.matcher(str2);
            if (matcher.matches()){
                System.out.println("匹配:"+matcher.group());
            }else {
                System.out.println("不匹配");
            }
    
        }
        //全局匹配
        public static void test(String str1,String str2){
            Pattern pattern = Pattern.compile(str1);
            Matcher matcher = pattern.matcher(str2);
            if (matcher.matches()){
                System.out.println("匹配:"+matcher.group());
            }else {
                System.out.println("不匹配");
            }
    
        }
    }

     

     

     

标签:字符,abc,匹配,正则表达式,matcher,test,Z0
From: https://www.cnblogs.com/hsk991213/p/17763656.html

相关文章

  • CPP(正则表达式)
    例如下面的代码,使用正则表达式去搜索test_str中第一个内容放回results中regex_search(test_str,results,r);所以我们需要构造正则表达式r构造方法:例如我们需要搜索的目标是std::string类型的test_str="receiptfriendtheifreceive";则我们需要构造std::stringpat......
  • AX2012 正则表达式返回所有匹配的Match对象
    staticvoidTestMatches(Args_args){System.Text.RegularExpressions.MatchCollectionregExMatchs;System.Text.RegularExpressions.MatchregExMatch;System.Collections.IEnumeratormatchesEnum;Str1260......
  • 正则表达式-反向引用
    正则基础之——反向引用-石磊-博客园(cnblogs.com)主要是匹配文本重复另外,以前没有注意过小括号除了可以捕获,还可以把几个条件绑定成一个整体匹配前面的子表达式零次或一次。例如,do(es)?可以匹配"do"、"does"、"doxy"中的"do"和"does"。?等价于{0,1}。......
  • Shell(二):正则表达式
    1、元字符Shell的表达式是一串字符。元字符(Metacharacters)是用来阐释字符表达式意义的字符。元字符就是描述字符的字符,用于对字符表达式的内容、转换及各种操作信息进行描述。2、正则表达式正则表达式是由一串字符和元字符构成的字符串,简称RE(RegularExpression)。......
  • 使用正则表达式验证用户名和密码
    学习Java开发mis系统一开始总的有个页面来登录吧,可以输入用户名和密码,用到使用正则表达式验证用户名和密码。马上安排!<!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type&......
  • 正则表达式
     ......
  • JavaScript之正则表达式
    正则表达式(RegExp)正则表达式不是JS独有的内容,大部分语言都支持正则表达式JS中正则表达式使用得不是那么多,我们可以尽量避免使用正则表达式在JS中,正则表达式就是RegExp对象,RegExp对象用于将文本与一个模式匹配正则表达式(regularexpressions,规则表达式)正则表达式用来定......
  • Jmeter - 参数关联(正则表达式)
     前言:工具久没用是真的会生疏,补补笔记加深记忆. 一、什么时候需要关联?1. 服务器返回的动态变化而且对业务有影响的需要关联。2. 回放脚本看是否正确,检查下脚本,是否有动态数据影响3.一大串字符串,每次请求参数是否有变化4. 可以找开发问问,接口是开发做的,最清楚了 ......
  • 数据解析之re正则表达式
    数据解析之re正则表达式1.正则基础1.1为什么使用正则需求判断一个字符串是否是手机号解决编写一个函数,给函数一个字符串,如果是手机号则返回True,否则返回False代码defisPhone(phone):#长度为11#全部都是数字字符#以1开头passifisPhone("138......
  • 正则表达式(最近接触正则,留个备份)
     很多不太懂正则的朋友,在遇到需要用正则校验数据时,往往是在网上去找很久,结果找来的还是不很符合要求。所以我最近把开发中常用的一些正则表达式整理了一下,在这里分享一下。给自己留个底,也给朋友们做个参考。一、校验数字的表达式1数字:^[0-9]*$2n位的数字:^\d{n}$3至......