java中的正则操作总结

http://www.cnblogs.com/nerxious/archive/2013/01/03/2842910.html

正则表达式在处理字符串的效率上是相当高的

关于正则表达式的使用,更多的是自己的经验,有兴趣可以参阅相关书籍

这里主要写一下java中的正则操作方法

实例1:匹配

import java.util.Scanner;

class Demo {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //获取输入
        System.out.print("Please Enter:");
        String str = sc.nextLine();
        check(str);
    }

    private static void check(String str) {
        //匹配第一位是1-9,第二位及以后0-9(个数在4-10之间)
        String regex = "[1-9][0-9]{4,10}";

        /*
        //匹配单个字符是大小写的a-z
        String regex = "[a-zA-Z]";
        //匹配数字,注意转义字符
        String regex = "\\d";
        //匹配非数字
        String regex = "\\D";
        */

        if(str.matches(regex)) {
            System.out.println("匹配成功");
        } else {
            System.out.println("匹配失败");
        }
    }
}

此处String类中的matches()方法用于匹配

实例2:切割

import java.util.Scanner;

class Demo {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Please Enter:");
        String str = sc.nextLine();
        split(str);
    }

    private static void split(String str) {
        //匹配一个或多个空格
        String regex = " +";

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

        for (String s : arr) {
            System.out.println(s);
        }
    }
}

此处String类中的split()方法用于按正则表达式切割,返回一个String数组

实例3:替换

import java.util.Scanner;

class Demo {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Please Enter:");
        String str = sc.nextLine();
        replace(str);
    }

    private static void replace(String str) {
        //匹配叠词
        String regex = "(.)\\1+";
        String s = str.replaceAll(regex, "*");
        System.out.println(s);
    }
}

注意replaceAll有两个参数,一个是正则,一个是替换的字符

时间: 2025-01-02 01:39:11

java中的正则操作总结的相关文章

java中的集合操作类(未完待续)

申明: 实习生的肤浅理解,如发现有错误之处,还望大牛们多多指点 废话 其实我写java的后台操作,我每次都会遇到一条语句:List<XXXXX> list = new ArrayList<XXXXX>(); 但是我仅仅只是了解,list这个类是一个可变长用来存储的对象实例的类,我甚至觉得这个List对象可以理解成数组,但是却又与java中咱们正常理解的数组很多的不同,比如说,他的长度可以随着需要自动增长,比如说,实例化一个List类就和咱们声明数组的时候是不一样的! 今天的实习生活

Java 中的正则(Pattern)

/**String 中 replaceAll(),matches(),split() 等方法,都是调用Pattern中的方法.学习了,瞬间觉得Pattern强大了 public String replaceAll(String regex, String replacement) { return Pattern.compile(regex).matcher(this).replaceAll(replacement); } public boolean matches(String regex)

java入门学习笔记之2(Java中的字符串操作)

因为对Python很熟悉,看着Java的各种字符串操作就不自觉的代入Python的实现方法上,于是就将Java实现方式与Python实现方式都写下来了. 先说一下总结,Java的字符串类String本身定义了一些简单的字符串操作, 字符串常用操作有: 1. 取某一字符第一次出现/最后一次出现的索引 2. 取字符串某一位置的字符 3. 字符串截取 4. 去除首尾空格 5. 字符串字符替换 6. 判断两个字符串是否相等 7. 大小写转换 下面开始: 1.取某一字符第一次出现/最后一次出现的索引 JA

Java中的日期操作

Date : getTime() .setTime() SimpleDateFormate :   Formate(Date). parse(String s) Calendar : getInstance().set() .get().getActualMaximum().add().  gettime().setTime(Date). 字符串.Date.Calendar之间的转换 ---------------------------------------淫荡分隔-------------

java学习系列(一)Java中的IO操作

Java的IO流是实现输入/输出的基础,它可以方便地实现数据的输入\输出操作,在Java中把不同的输入\输出源抽象为"流",通过流的方式允许Java程序使用相同的方式来访问不同的输入/输出源.stream是从起源(source)到接收(sink)的有序数据. Java把所有传统的流类型(类或抽象类)都放在java.io包中,用以实现输入\输出功能. JavaAPI 1.6中java.io包 1.子节流  * 输入字节流 * -------------|InputStream 所有输入字

java中关于正则一些基础使用

这是本人的第一篇技术型博客,希望能帮到有需要的朋友.-----转载请注明出处. 在之前工作中,需要对很多字符串进行处理.我现在记录下来,以免以后遗忘. 对于正则处理相关的知识,我一开始是从网上找资料配合使用Java API1.6的一个中文版进行学习,很感谢翻译这个版本的团队(机构)或者个人,很感谢那些无私分享自己的知识的朋友. 下文中对于正则的相关知识,现在我是从oracle提供的最新的Java API,可能和以前我看得1.6有些出入,贴出API地址:http://docs.oracle.com

Java中的文件操作

在使用计算机编程中,常常会用到对于文件的操作,以下是我对于Java中文件的相关内容学习之后的一个总结和在学习过程中遇到的一些问题. 一.什么是文件 对于文件进行操作,首先我们要知道什么是文件.在此之前,我们要知道,计算机其实就是一个文件系统.在计算机中,我们能在硬盘中看到的所有东西都叫文件.由此看来,计算机中文件是一个很广的范围.事实上,计算机中文件被分为了3种,一个是标准文件,一个是目录文件,还有一个就是虚拟内存文件. 这三种对于文件的分类没有一个明确的定义,后缀名是(.txt..doc..m

Java中的IO操作(一)

一.Java IO简介 IO也写作"I/O",可理解为In和Out,即输入与输出.所以,IO体系的基本功能就是:读取和写入. IO的核心是IO流,作用:读写设备上的数据,硬盘文件.内存.键盘.网络... 分类: 根据数据的走向,IO流可分为:输入流和输出流: 根据处理的数据类型,IO流可分为:字节流和字符流: 字节流和字符流的区别: 字节流可以处理所有类型的数据,如MP3.图片.文字.视频等.在读取时,读到一个字节就返回一个字节. 在Java中对应的类都是以"Stream&q

Java 中的数组操作

前言 在Java中,有很多封装好的类可以用来操纵数组(排序,复制等等),使得数组使用起来非常的方便.这就是高级语言带来的好处. 代码示例 - 一维数组 package test; import java.util.Arrays; public class Test { public static void main(String[] args) { int []a = {1, 3, 5, 2, 4, 6}; // 将数组转换为字符串输出 System.out.println(Arrays.toS