正则表达式(专题)

前端之家收集整理的这篇文章主要介绍了正则表达式(专题)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

一、特点

1.符合一定的规则的表达式。
2.作用:用于专门操作字符串。
特点:用一些特定的符号来表示一些代码操作,这样简化书写。

3.具体操作功能

1) 匹配:String matches方法

字符类:

  • [abc]:表示相应字符位必须是a或b或c;
public class Test01 {
    public static void main(String[] args) {
        demo();

    }

    public static void demo(){
        String str = "a";
        String reg = "[bcd]";//第一个字符必须是b或c或d。
        System.out.println(str.matches(reg));
    }
}
}
//结果:false
  • [a-zA-Z]:必须是字母:
    注:位数

    预定义字符:
  • \d:注意,用是写成\d,第一个\是转义
String str = "a8";
String reg = "[a-zA-Z]\\d";//只能校验两位数,代替了上面的[0-9]
System.out.println(str.matches(reg));
  • \w:单词字母(邮箱常用)
    数量词:
  • X? ,X+,X{n},X{n,},m}

**2)切割**String split();
正则表达式:
弊端:符号定义越多,正则越长,阅读性越差。

**3)替换:**replaceAll()

public class Test01 {

    public static void main(String[] args) {

        replaceDemon("123456kuuusk1234op","\\d{5,}","#"); //将数字超过5个的替换成#

        replaceDemon("ghhhdsk55dj","(.)\\1+","&"); //把叠词替换成&
        replaceDemon("yyyyyjdhs77777","(.\\1+)","$1");//$表示获取第几个组。功能将重叠的字符替换成单个字母。
    }
        public static void replaceDemon(String str,String reg,String newStr){

                str = str.replaceAll(reg,newStr);
                System.out.println(str);
            }
        }
/* 结果: #kuuusk1234op g&dsk&dj yyyyyjdhs77777 */

4)获取
将字符串中符合规则的子串取出
操作步骤:
1)将正则表达式封装成对象
2)让正则对象和要操作的字符串相关联
3)关联后,获取正则匹配引擎
4)通过引擎对符合规则的子串进行操作,比如取出。
注:导包import java.util.regex.*;

public class Test01 {

    public static void main(String[] args) {
        getDemon();

    }
        public static void getDemon(){

                String str = "mng dksja ks dks sdjf djf";
                String reg = "\\b[a-z]{3}\\b"; // \b单词边界
                //将规则封装成对象
                Pattern p = Pattern.compile(reg);
                //让正则对象和要做用的字符串相关联,获取匹配器对象,
                Matcher m = p.matcher(str);

                System.out.println(m.matches());
                while(m.find())//返回boolean类型,先find才能group取出
                {
                System.out.println(m.group());//group是获取匹配后的结果,所以应该先find
                }
    }

}
原文链接:https://www.f2er.com/regex/360105.html

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