java正则匹配,java正则匹配空格

发布时间:2022-11-27

本文目录一览:

  1. [java 怎么用正则表达式拿出一篇文章中匹配](#java 怎么用正则表达式拿出一篇文章中匹配)
  2. java正则表达式
  3. java正则表达式匹配模式
  4. 请问JAVA中正则表达式匹配怎么实现的!
  5. [java 正则表达式 怎么匹配 中文 和数字](#java 正则表达式 怎么匹配 中文 和数字)
  6. java正则表达式是什么?

java 怎么用正则表达式拿出一篇文章中匹配

利用正则表达式从给定的字符串中取出符合匹配规则的字符串的Java程序如下:

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class E {
    public static void main(String[] args) {
        Pattern p = Pattern.compile("[A-Za-z]+"); // 设定匹配规则为取出字符串中的字母
        Matcher m = p.matcher("12sifiwq820aufu"); // 与字符串匹配
        while (m.find()) {
            System.out.println(m.group());
        }
    }
}

运行结果:

sifiwqaufu

java正则表达式

Java 正则表达式和 Perl 的是最为相似的,正则表达式就是规则表达式。 Java中正则表达式与之前使用的Python是有区别的,区别在于Java对于反斜线(\)处理的不同。 在Python中"\d"表示 匹配一位数字(0-9),而Java中匹配一位数字(0-9),需要的正则表达式为"\\d"。 不过换行符和制表符只需要单反斜线\n\t。 正则表达式定义了字符串的模式。可以用来搜索、编辑或处理文本。不仅限于某一种语言,但是在每种语言中有细微的差别。

java正则表达式匹配模式

不需要完全匹配的正则表达式,用m1.find()函数就可以模糊匹配,完整的程序如下:

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class G {
    public static void main(String[] args) {
        String reg = "\\d{3}\\s+\\d{5}\\s+\\d{3}\\s+\\d{2}";
        Pattern p1 = Pattern.compile(reg);
        String u = "CQGM021R1 581 12138 460 00 41739-1 in-service ";
        Matcher m1 = p1.matcher(u);
        while (m1.find()) {
            System.out.println(m1.group());
        }
    }
}

运行结果:

581 12138 460 00

请问JAVA中正则表达式匹配怎么实现的!

Java中正则表达式匹配的语法规则: 以下是整理出来的Java下运用正则表达式实现匹配的程序案例,代码如下:

package org.luosijin.test;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
 * 正则表达式
 * @version V5.0
 * @author Admin
 * @date    2015-7-25
 */
public class Regex {
    /**
     * @param args
     * @author Admin
     * @date 2015-7-25
     */
    public static void main(String[] args) {
        Pattern pattern = Pattern.compile("b*g");
        Matcher matcher = pattern.matcher("bbg");
        System.out.println(matcher.matches());
        System.out.println(pattern.matches("b*g", "bbg"));
        // 验证邮政编码
        System.out.println(pattern.matches("[0-9]{6}", "200038"));
        System.out.println(pattern.matches("\\d{6}", "200038"));
        // 验证电话号码
        System.out.println(pattern.matches("[0-9]{3,4}-?[0-9]+", "02178989799"));
        getDate("Nov 10,2009");
        charReplace();
        // 验证身份证:判断一个字符串是不是身份证号码,即是否是15或18位数字。
        System.out.println(pattern.matches("^\\d{15}|\\d{18}$", "123456789009876"));
        getString("D:/dir1/test.txt");
        getChinese("welcome to china,江西奉新,welcome,你!");
        validateEmail("luosijin123@163.com");
    }
    /**
     * 日期提取:提取出月份来
     * @param str
     * @author Admin
     * @date 2015-7-25
     */
    public static void getDate(String str) {
        String regEx = "([a-zA-Z]+)|\\s+[0-9]{1,2},\\s*[0-9]{4}";
        Pattern pattern = Pattern.compile(regEx);
        Matcher matcher = pattern.matcher(str);
        if (!matcher.find()) {
            System.out.println("日期格式错误!");
            return;
        }
        System.out.println(matcher.group(1)); // 分组的索引值是从1开始的,所以取第一个分组的方法是m.group(1)而不是m.group(0)。
    }
    /**
     * 字符替换:本实例为将一个字符串中所有包含一个或多个连续的“a”的地方都替换成“A”。
     * @author Admin
     * @date 2015-7-25
     */
    public static void charReplace() {
        String regex = "a+";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher("okaaaa LetmeAseeaaa aa booa");
        String s = matcher.replaceAll("A");
        System.out.println(s);
    }
    /**
     * 字符串提取
     * @param str
     * @author Admin
     * @date 2015-7-25
     */
    public static void getString(String str) {
        String regex = ".+/(.+)$";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(str);
        if (!matcher.find()) {
            System.out.println("文件路径格式不正确!");
            return;
        }
        System.out.println(matcher.group(1));
    }
    /**
     * 中文提取
     * @param str
     * @author Admin
     * @date 2015-7-25
     */
    public static void getChinese(String str) {
        String regex = "[\\u4E00-\\u9FFF]+"; // [\\u4E00-\\u9FFF]为汉字
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(str);
        StringBuffer sb = new StringBuffer();
        while (matcher.find()) {
            sb.append(matcher.group());
        }
        System.out.println(sb);
    }
    /**
     * 验证Email
     * @param email
     * @author Admin
     * @date 2015-7-25
     */
    public static void validateEmail(String email) {
        String regex = "[0-9a-zA-Z]+@[0-9a-zA-Z]+\\.[0-9a-zA-Z]+";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(email);
        if (matcher.matches()) {
            System.out.println("这是合法的Email");
        } else {
            System.out.println("这是非法的Email");
        }
    }
}

java 正则表达式 怎么匹配 中文 和数字

java 正则匹配字符为纯数字方法: 定义正则表达式为:

String reg = "^\\d+$";

获取要判断的字符串:

String str; // 可以通过Scanner从控制台输入,也可以用字符串常量进行初始化

调用字符串的matches方法判断字符串为纯数字情况:

str.matches(reg);

如果是纯数字返回为true,否则返回为false

java正则表达式是什么?

在程序开发中,难免会遇到需要匹配、查找、替换、判断字符串的情况发生,而这些情况有时又比较复杂,如果用纯编码方式解决,往往会浪费程序员的时间及精力。因此,学习及使用正则表达式,便成了解决这一矛盾的主要手段。 正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它用以描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。

扩展资料:

正则表达式的特点是:

  1. 灵活性、逻辑性和功能性非常强;
  2. 可以迅速地用极简单的方式达到字符串的复杂控制。
  3. 对于刚接触的人来说,比较晦涩难懂。 由于正则表达式主要应用对象是文本,因此它在各种文本编辑器场合都有应用,小到著名编辑器EditPlus,大到Microsoft Word、Visual Studio等大型编辑器,都可以使用正则表达式来处理文本内容。 参考资料来源:百度百科-正则表达式