java匹配,java匹配正则表达式

本文目录一览:

java中怎么匹配字符串

匹配方式(其中每个方式对应RegUtil.java中的一个方法)代码:

package test;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class RegUtil {

/**

* 方式一:基本正则表达式实现

* @param str

* @param reg

* @return

*/

public static boolean matchMatcher(String str,String reg){

Pattern pattern =Pattern.compile(reg);

Matcher matcher=pattern.matcher(str);

return matcher.matches();

}

/**

* 方式二:利用Pattern自带实现

* @param str

* @param reg

* @return

*/

public static boolean matchPattern(String str,String reg){

return Pattern.matches(reg, str);

}

/**

* 方式三:String自带实现

* @param str

* @param reg

* @return

*/

public static boolean matchStr(String str,String reg){

return str.matches(reg);

}

}

对应单元测试代码如下:

package test;

import org.junit.Assert;

import org.junit.Test;

public class TestReg {

@Test

public void testParttern(){

Assert.assertTrue(RegUtil.matchMatcher(“123”, “//d+”));

Assert.assertTrue(RegUtil.matchPattern(“123”, “//d+”));

Assert.assertTrue(RegUtil.matchStr(“123”, “//d+”));

}

}

请问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中怎么判断匹配情况?

能匹配任何字符串,比如1、a、sdf、3adfs、kfgfh等等,也能匹配m1、wapdd等m、wap开头的。但是排除m、wap的情况。

括号匹配问题:大部分情况是有括号和花括号在一起的一对一对的,就跟情侣一样的。

然后分号就是和括号一对一的出现的

凡出现左括弧,则进栈。

凡出现右括弧,首先检查栈是否空若栈空,则表明该“右括弧”多余,否则和栈顶元素比较。若相匹配,则“左括弧出栈”, 否则表明不匹配。                             

表达式检验结束时,若栈空,则表明表达式中匹配正确,否则表明“左括弧”有余。

java编程语言:

Java 编程语言的风格十分接近C、C++语言。

Java是一个纯的面向对象的程序设计语言,它继承了 C++ 语言面向对象技术的核心,Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。

在 Java SE 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。

Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性。不过,每次的编译执行需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。但在 J2SE 1.4.2 发布后,Java 的执行速度有了大幅提升。

java中如何对两个字符串数组进行匹配?

导入java.util.regex

String[] array=new String[]{“cbb”,”caa”,”dsa”};

String regex=”^cb*”; //表示以c开头有多个b的字符串

for(String str:array){

if(Str.matches(regex)) {

System.out.println(str);

}

输出结果为cbb,因为其他的符合要求,纯手打

java正则匹配语句中特定单词

使用正则表达式的 “零宽度正回顾后发断言“这个正则就是匹配以某个指定字符开头的字段,具体定义你可以去搜索一下,java代码如下:

String target = “scoreboard objectives setdisplay sidebar R_HT_win”;

Pattern pattern = Pattern.compile(“(?=scoreboard objectives setdisplay sidebar\\s{1})\\w*”);

Matcher matcher = pattern.matcher(target);

String result = null;

if (matcher.find()){

int startIndex = matcher.start();

int endIndex = matcher.end();

result = target.substring(startIndex,endIndex);

}

System.out.println(result);

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/188542.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-11-28 13:31
下一篇 2024-11-28 13:31

相关推荐

  • Java JsonPath 效率优化指南

    本篇文章将深入探讨Java JsonPath的效率问题,并提供一些优化方案。 一、JsonPath 简介 JsonPath是一个可用于从JSON数据中获取信息的库。它提供了一种DS…

    编程 2025-04-29
  • java client.getacsresponse 编译报错解决方法

    java client.getacsresponse 编译报错是Java编程过程中常见的错误,常见的原因是代码的语法错误、类库依赖问题和编译环境的配置问题。下面将从多个方面进行分析…

    编程 2025-04-29
  • Java腾讯云音视频对接

    本文旨在从多个方面详细阐述Java腾讯云音视频对接,提供完整的代码示例。 一、腾讯云音视频介绍 腾讯云音视频服务(Cloud Tencent Real-Time Communica…

    编程 2025-04-29
  • Java Bean加载过程

    Java Bean加载过程涉及到类加载器、反射机制和Java虚拟机的执行过程。在本文中,将从这三个方面详细阐述Java Bean加载的过程。 一、类加载器 类加载器是Java虚拟机…

    编程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介绍

    本文将详细介绍Java Milvus SearchParam withoutFields的相关知识和用法。 一、什么是Java Milvus SearchParam without…

    编程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java语言中的一个版本,于2014年3月18日发布。本文将从多个方面对Java 8中某一周的周一进行详细的阐述。 一、数组处理 Java 8新特性之一是Stream…

    编程 2025-04-29
  • Java判断字符串是否存在多个

    本文将从以下几个方面详细阐述如何使用Java判断一个字符串中是否存在多个指定字符: 一、字符串遍历 字符串是Java编程中非常重要的一种数据类型。要判断字符串中是否存在多个指定字符…

    编程 2025-04-29
  • VSCode为什么无法运行Java

    解答:VSCode无法运行Java是因为默认情况下,VSCode并没有集成Java运行环境,需要手动添加Java运行环境或安装相关插件才能实现Java代码的编写、调试和运行。 一、…

    编程 2025-04-29
  • Java任务下发回滚系统的设计与实现

    本文将介绍一个Java任务下发回滚系统的设计与实现。该系统可以用于执行复杂的任务,包括可回滚的任务,及时恢复任务失败前的状态。系统使用Java语言进行开发,可以支持多种类型的任务。…

    编程 2025-04-29
  • Python正则表达式search()和match()有什么区别?

    search()和match()都是Python中的正则表达式函数,它们的作用都是在一个字符串中搜索匹配正则表达式的位置,但它们有着不同的使用场景和返回结果。 一、search()…

    编程 2025-04-29

发表回复

登录后才能评论