栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java正则表达式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java正则表达式

1概念

正则表达式(Regular expression)又称正规表示法、常规表示法,在代码中常简写为 regex、regexp 或 RE,它是计算机科学的一个概念。
正则表达式是一个强大的字符串处理工具,可以对字符串进行查找、提取、分割、替换等操作,是一种可以用于模式匹配和替换的规范。一个正则表达式就是由普通的字符(如字符 a~z)以及特殊字符(元字符)组成的文字模式,它用以描述在查找文字主体时待匹配的一个或多个字符串。
String 类里也提供了如下几个特殊的方法。

  • boolean matches(String regex):判断该字符串是否匹配指定的正则表达式。
  • String replaceAll(String regex, String replacement):将该字符串中所有匹配 regex 的子串替换成 replacement。
  • String replaceFirst(String regex, String replacement):将该字符串中第一个匹配 regex 的子串替换成 replacement。
  • String[] split(String regex):以 regex 作为分隔符,把该字符串分割成多个子串。

上面这些特殊的方法都依赖于 Java 提供的正则表达式支持,除此之外,Java 还提供了 Pattern 和 Matcher 两个类专门用于提供正则表达式支持。

2正则表达式语法

1)  英文句点.符号:匹配单个任意字符。

  • 表达式t.o 可以匹配:tno,t#o,teo等等。不可以匹配:tnno,to,Tno,t正o等。

2)中括号[]:只有方括号里面指定的字符才参与匹配,也只能匹配单个字符。

  • 表达式:t[abcd]n 只可以匹配:tan,tbn,tcn,tdn。不可以匹配:thn,tabn,tn等。

 3)| 符号。相当与“或”,可以匹配指定的字符,但是也只能选择其中一项进行匹配。

  • 表达式:t(a|b|c|dd)n 只可以匹配:tan,tbn,tcn,tddn。不可以匹配taan,tn,tabcn等。

 4)表示匹配次数的符号

符号次数
*0次或多次
+1次或多次
0次或1次
{n}恰好n次
{n,m}从n次到m次
  • 表达式:[0—9]{ 3 } — [0-9]{ 2 } — [0-9]{ 3 } 的匹配格式为:999—99—999
    因为—符号在正则表达式中有特殊的含义,它表示一个范围,所以在前面加转义字符。

 5)^符号:表示否,如果用在方括号内,^表示不想匹配的字符。

  • 表达式:[^x] 第一个字符不能是x

 6)S符号:非空字符
7)s符号:空字符,只可以匹配一个空格、制表符、回车符、换页符,不可以匹配自己输入的多个空格。
8)r符号:空格符,与n、tab相同

 

 

 3Java 中正则表达式的应用

 1)判断功能

  • public boolean matches(String regex)
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
     
    public class RegexMatches
    {
        private static final String REGEX = "foo";
        private static final String INPUT = "fooo";
        private static Pattern pattern;
        private static Matcher matcher;
     
        public static void main( String[] args ){
           pattern = Pattern.compile(REGEX);
           matcher = pattern.matcher(INPUT);
           System.out.println("matches(): "+matcher.matches());
       }
    }

 2)分割功能

  • import java.util.Scanner;
    
    public class fenge {
        public static void main(String[] args){
            String age = "18-24";//定义年龄范围
            String regex = "-";
            String[] strArr = age.split(regex);//分割成字符串数组
    
            int startAge = Integer.parseInt(strArr[0]);
            int endAge = Integer.parseInt(strArr[1]);
    
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入您的年龄:");
            int a = sc.nextInt();
            if (a >= startAge && a <= endAge){
                System.out.println("你就是我想找的");
        
        }
    }
    
    public String[] split(String regex)

3)替换功能

  • public String replaceAll(String regex,String replacement)
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexMatches {

   private static String REGEX = "dog";
   private static String INPUT = "The dog says meow. " + "All dogs say meow.";
   private static String REPLACE = "cat";

   public static void main(String[] args) {
      Pattern p = Pattern.compile(REGEX);
      Matcher m = p.matcher(INPUT); 
      INPUT = m.replaceAll(REPLACE);
      System.out.println(INPUT);
   }
}

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/694348.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号