• Java基础-正则表达式


    正则表达式入门

    str.matches("\d+");  由1到多个数字组成返回true

    正则表达式是什么?是一个字符串,一个由元字符【预定义字符】和普通字符和量词组成的一个字符串。

    元字符:有特殊含义的字符

    正则表达式的作用?用来实现字符串的匹配或过滤。

    正则表达式的元字符如下:(再加取消元字符功能 如\d)

    d  数字(digit)

    D  非数字

    s  空格(space)   == [ fv]

    S  非空格

    w  单字符:字母数字下划线中的某个符号(word)

    W  非单字符:单字符之外中的某个符号

    .      一个任意字符[除 ]

    ^regex$   ^表示开始 $表示结束

    [^a] ^在括号里表示 否 ...

    |  或者

    量词如下:

    +  1个或多个字符

    *  0个或多个字符

    ?  0或1个字符

    {n}  正好n个字符

    {n,}  至少n个字符

    {n,m} 最少n个,最多m个字符

    字符集:

    使用[]将出现的字符罗列出来

    [ac?_6]  表示5个字符中的某一个

    [0-9]  表示0-9中的某一个,- 表示范围

    所以 w 等价于 [a-zA-Z0-9_]

    正则的应用:

    String类的与正则相关的常用方法

    boolean matches(regex); 匹配:按正则的要求对字符串进行匹配

    String[] split(regex);  分割:按正则的要求对字符串进行分割

    分割示例:

    String str="i love! you?";

    String regex="[\s!?\d]{1,}"; //一或多个空格及叹号、问号、数字

    String[] s=str.split(regex);

    for(String tem:s){

      println(tem);

    }

    println("个数"+s.length);

     //

    import java.util.regex.Pattern;
    if( Pattern.matches(regex1, email) || Pattern.matches(regex2, email) ){...

    //

    积累:

    非负整数 [0-9]+

    正整数  [1-9]\d*   OR   [1-9][0-9]*

    字母开头之后接3-6个任意字符  [a-zA-Z].{3,6} 等效 [a-zA-Z]{1}.{3,6}

    替换

    String newstr = str.replaceALL(String regex,String replament); 用replament 替换 regex

    积累:

    或者,要么是nba 要么是cba :    nba|cba

    手机号:[1][3578][0-9]{9}

    邮箱:.+@.+[.].+ 是错的 [a-zA-Z0-9]\w*[@][a-zA-Z0-9]+[.][a-zA-Z]{2,3}

    示例:

    java.util.Pattern

    Pattern.matches(regex,email); 等效于 email.matches(regex);

    过滤

    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    public class Demo {
        public static void main(String[] args) {
            String str = "public 中国 stati美国c void main(String[] args) {";
            String regex = "[sS][a-zA-Z]{5,}";// [u4e00-u9fa5] 表示汉字
            // 匹配模式
            Pattern pattern = Pattern.compile(regex);
            // 匹配器
            Matcher matcher = pattern.matcher(str);
            // 匹配
            while (matcher.find()) {
                System.out.println(matcher.group());
            }
        }
    }

    预留位置

  • 相关阅读:
    Mybatis连接配置文件详解
    MyBatis映射配置文件详解
    AGC 016 C
    CodeForces
    UVA
    某5道CF水题
    DZY Loves Chinese / DZY Loves Chinese II
    [SHOI2016] 黑暗前的幻想乡
    CodeForces
    CodeForces
  • 原文地址:https://www.cnblogs.com/qixiawentang/p/5501873.html
Copyright © 2020-2023  润新知