×

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

请问JAVA中正则表达式匹配怎么实现的!?java 正则表达式 如何匹配“*“

admin admin 发表于2022-05-21 23:52:51 浏览173 评论0

抢沙发发表评论

请问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(“{6}“, “200038“));
        System.out.println(pattern.matches(“//d{6}“, “200038“));
        //验证电话号码
        System.out.println(pattern.matches(“{3,4}//-?+“, “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+{1,2},//s*{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关键字一样的道理

改正方法:
a.replace(“\\*“,“dog“);
\\*对 *进行了转义 是真正的*
-java 正则表达式匹配

如何用正则表达式匹配汉字


一般情况下可以这样匹配中文,如图:<img src=“
假设这个节点只有一个,用法如下:

import reimport requests as reqfrom bs4 import BeautifulSoupurl = ’xxx’html = req.get(url).textbs = BeautifulSoup(html)span = bs.find_all(’span’, ’pro-title’)’’’span = re.findall(’《span\sclass=“pro-title“》[^《]+《/span》’, html)s = spanm = re.findall(’[\u4e00-\u9fa5]+’, s)’’’s = str(span)m = re.findall(’[\u4e00-\u9fa5]+’, s)print(m)
-正则表达式匹配