「Java中正则匹配」java正则匹配字符串

博主:adminadmin 2022-12-29 10:42:09 67

本篇文章给大家谈谈Java中正则匹配,以及java正则匹配字符串对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java 正则匹配

按照你的要求编写的Java正则匹配程序如下

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class A {

 public static void main(String[] args) {

  String s="[n]xxxxxxx/[n]";

  String regex="((.+?)).*?/\\2";

  Pattern p = Pattern.compile(regex);

  Matcher m = p.matcher(s);

  while(m.find()){

   System.out.println(m.group(1));

  }

 }

}

运行结果

[n]

请问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有关正则表示式,我想匹配一个字串中的任意字元,怎么办?

"\."是被转意了的,是要匹配一个“点”,不用加“\\”,直接用“."就可以了

怎么用正则表示式匹配一个字串java

import java.util.regex.*;

class Regex1{

public static void main(String args[]) {

String str="For my money, the important thing ";

String regEx="ab*";

boolean result=Pattern.pile(regEx).matcher(str).find();

System.out.println(result);

}

}ture

js或者jquery正则表示式匹配一个字串

你好 你这样写 找到了以后他就不会往后找了 要加上全文搜寻 g

这样就好了/\{(.+?)\}/g

用正则表示式去匹配一个字串中的数字

表示式:h3[^\d]*(\d*)[^\d]*/h3

然后取子匹配文字的第一个就可以了

正则表示式匹配一个字串的起始栏位

何必用正则呢,我想到一个思路:将你输入的字串取到(比如是:hel),看他是不是目标串hello的子串,不过子串得从最开始的字元开始。

虚拟码如下:

"hello".substring(0, "hel".length).equals("hel")

如果能成功匹配的话就是合法的,如果不能就不合法。

如果你非要用正则的话,那么就只能穷举所的情况了:h|he|hel|hell|hello

希望可以帮到你!

正则表示式 匹配几个字串

用 /[\.\?!]+_[\.:]/ 来分割即可。

如果用 php,可以这样写:

?php

$str = 'actually_RB have_VBP a_DT few_JJ ._. sets_NNS of_IN these_DT magic_JJ office_NN supply_NN pieces_NNS !_. To_TO illustrate_VB more_JJR fully_RB how_WRB they_PRP look_VBP and_CC can_MD be_VB used_VBN heh_VB..._: I_PRP added_VBD some_DT photos_NNS to_TO the_DT product_NN page_NN that_IN you_PRP can_MD aess_VB from_IN the_DT original_JJ product_NN photo_NN ?_.';

$arr = preg_split('/[\.\?!]+_[\.:]/', $str);

print_r($arr);

?

正则表示式 匹配 两个字串

1234(.*?)56789

JAVA正则表示式 匹配一段字串

import java.util.regex.*;

public class Test1 {

public static void main(String[] args) {

Pattern p = Pattern.pile("[a-zA-Z]123456");

String a="A123456";

String a="H545987"; 可以换成这个

Matcher m = p.matcher(a);

System.out.println(m.matches());

}

}

根据是否正确返回true或false

Java中正则表示式 匹配字串

String regEx = "a([\s\S]*?)/a";

String s = "a123/aa456/aa789/a";

Pattern pat = Pattern.pile(regEx);

Matcher mat = pat.matcher(s);

boolean rs = mat.find();

for(int i=1;i=mat.groupCount();i++){

System.out.println(mat.group(i));

}

关于Java中正则匹配和java正则匹配字符串的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-29,除非注明,否则均为首码项目网原创文章,转载请注明出处。