javaregex匹配的简单介绍

博主:adminadmin 2022-12-19 19:00:08 108

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

本文目录一览:

java正则表达式如何匹配反斜杠?

可能这个问题对于初学者来说比较头疼,但是只要别人一点可能就明白了。

JAVA中匹配反斜杠的正则表达式的书写方式为:

1

String regex="\\\\";

注意了,一定要写四个反斜杠,第一和第三个反斜杠是用作java字符串的转义,实际上只代表两个反斜杠。

其实只要输入如下代码运行验证一下即可:

System.out.print("\\\\");//输出为 \\

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正则提取需要用到Matcher类,下面给出案例示例供参考

需要提取车牌号中最后一个数字,比如说:苏A7865提取5,苏A876X提取6

import java.util.regex.Matcher;import java.util.regex.Pattern;public class Test {public static void main(String[] args) {String s = "A876X";// 把要匹配的字符串写成正则表达式,然后要提取的字符使用括号括起来// 在这里,我们要提取最后一个数字,正则规则就是“一个数字加上大于等于0个非数字再加上结束符”Pattern pattern = Pattern.compile("(\\d)[^\\d]*$");Matcher matcher = pattern.matcher(s);if(matcher.find())System.out.println(matcher.group(1));}}

关于Matcher 中的几个方法说明:

Mathcer.start()

Matcher.end()

Matcher.group()

当使用matches(),lookingAt(),find()执行匹配操作后,就可以利用以上三个方法得到更详细的信息. start()返回匹配到的子字符串在字符串中的索引位置. end()返回匹配到的子字符串的最后一个字符在字符串中的索引位置. group()返回匹配到的子字符串

示例代码如下,具体功能请参考注释

Pattern p=Pattern.compile(“\d+”); Matcher m=p.matcher(“aaa2223bb”); m.find();//匹配2223 m.start();//返回3 m.end();//返回7,返回的是2223后的索引号 m.group();//返回2223Mathcer m2=p.matcher(“2223bb”); m2.lookingAt(); //匹配2223 m2.start(); //返回0,由于lookingAt()只能匹配前面的字符串,所以当使用lookingAt()匹配时,start()方法总是返回0 m2.end(); //返回4 m2.group(); //返回2223Matcher m3=p.matcher(“2223”); //如果Matcher m3=p.matcher(“2223bb”); 那么下面的方法出错,因为不匹配返回false m3.matches(); //匹配整个字符串 m3.start(); //返回0 m3.end(); //返回3,原因相信大家也清楚了,因为matches()需要匹配所有字符串 m3.group(); //返回2223

另外,Mathcer类中start(),end(),group()均有一个重载方法它们是start(int i),end(int i),group(int i)专用于分组操作,Mathcer类还有一个groupCount()用于返回有多少组.

示例如下:

Pattern p=Pattern.compile(“([a-z]+)(\d+)”); Matcher m=p.matcher(“aaa2223bb”); m.find(); //匹配aaa2223 m.groupCount(); //返回2,因为有2组 m.start(1); //返回0 返回第一组匹配到的子字符串在字符串中的索引号 m.start(2); //返回3 m.end(1); //返回3 返回第一组匹配到的子字符串的最后一个字符在字符串中的索引位置. m.end(2); //返回7 m.group(1); //返回aaa,返回第一组匹配到的子字符串 m.group(2); //返回2223,返回第二组匹配到的子字符串

注意: 只有当匹配操作成功,才可以使用start(),end(),group()三个方法,否则会抛出java.lang.IllegalStateException,也就是当matches(),lookingAt(),find()其中任意一个方法返回true时,才可以使用。

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

javaregex匹配的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、javaregex匹配的信息别忘了在本站进行查找喔。

The End

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