资讯 小学 初中 高中 语言 会计职称 学历提升 法考 计算机考试 医护考试 建工考试 教育百科
栏目分类:
子分类:
返回
空麓网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
空麓网 > 计算机考试 > 软件开发 > 后端开发 > Java

正则表达式在java中使用(regtheory)

Java 更新时间: 发布时间: 计算机考试归档 最新发布

正则表达式在java中使用(regtheory)

代码使用

  • 头文件声明
import java.util.regex.Matcher;import java.util.regex.Pattern;
  • 具体使用方法
String s ="62671-ashdhh";String regStr = "^[0-9]+-[a-z]+$";Pattern p = Pattern.compile(regStr);Matcher m = p.matcher(s);//boolean b = m.matches();while (m.find()) {    System.out.println("找到 " + m.group(0));}
  • 上面的使用太繁琐,一般使用场景我们只需要匹配检查一次即可。所以可以省略为如下方式
boolean b = Pattern.matches("a*b", "aaaaab"); //reg,str
  • 上面那样普通使用还是麻烦,因此在字符串对象里提供快速调用的方法
"aaaaab".matches("a*b")

字符串matches和Pattern.matches的源码,可以发现其实内部还是用了第一种方式的

常见的操作

  • 匹配

    String matches()方法。用规则匹配整个字符串,只要有一处不符合规则,就匹配结束,返回false。

    String str = "123a45664";String reg = "[1-9]d{4,14}";boolean flag = str.matches(reg);if(flag)	System.out.println(qq+"...is ok");else	System.out.println(qq+"...is no ok");
  • 切割

    String split()方法; 根据给定正则表达式的匹配拆分此字符串。返回一个数组。

    		String str = "avg   bb   geig   glsd   abc";        String reg = " +";//按照多个空格来进行切割                String[] arr = str.split(reg);          System.out.println(arr.length);        for(String s : arr){            System.out.println(s);        }
  • 替换

    String replaceAll(regex,str) 方法; 使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。

    String str = "wer1389980000ty1234564uiod234345675f";//将字符串中的数字替换成#。str = str.replaceAll("d{5,}","#");System.out.println(str);// wer#ty#uio#f
    public static void replaceAllDemo(){            String str1 = "erkktyqqquizzzzzo";//将叠词替换成$.  //将重叠的字符替换成单个字母。zzzz->z         str = str.replaceAll("(.)1+","$1");$1引用前面.        System.out.println(str);}        // erktyquizo

常见的符号的介绍

符号说明
.任何字符(与行结束符可能匹配也可能不匹配)
d数字:[0-9]
D非数字: [^0-9]
s空白字符:[ tnx0Bfr]
S非空白字符:[^s]
w单词字符:[a-zA-Z_0-9]
W非单词字符:[^w]
转义字符,比如"“匹配”" ,"{“匹配”{"。
符号说明
*等价于{0,} 匹配0至 多个 在它之前的字符。例如正则表达式“zo*”能匹配“z”以及“zoo”;正则表达式“.*”意味着能够匹配任意字符串。
+等价于{1,} 匹配前面的子表达式一次或多次。例如正则表达式9+匹配9、99、999等。
?等价于{0,1} 匹配前面的子表达式零次或一次。例如,“do(es)?” 可以匹配 “do” 或 “does” 中的"do" 。此元字符还有另外一个用途,就是表示非贪婪模式匹配,后边将有介绍
{n}匹配确定的 n 次。例如,“e{2}”不能匹配“bed”中的“d”,但是能匹配“seed”中的两个“e”。
{n,}至少匹配n次。例如,“e{2,}”不能匹配“bed”中的“e”,但能匹配“seeeeeeeed”中的所有“e”。
{n,m}最少匹配 n 次且最多匹配 m 次。“e{1,3}”将匹配“seeeeeeeed”中的前三个“e”。
符号说明
^行的开头
$行的结尾
b单词边界
B非单词边界
A输入的开头
G上一个匹配的结尾
Z输入的结尾,仅用于最后的结束符(如果有的话)
z输入的结尾
[]的使用--或说明
[]匹配括号中的任何一个字符
[abc]a、b 或 c(简单类)
[^abc]任何字符,除了 a、b 或 c(否定)
[a-zA-Z]a 到 z 或 A 到 Z,两头的字母包括在内(范围)
[a-d[m-p]]a 到 d 或 m 到 p:[a-dm-p](并集)
[a-z&&[def]]d、e 或 f(交集)
[a-z&&[^bc]]a 到 z,除了 b 和 c:[ad-z](减去)
[a-z&&[^m-p]]a 到 z,而非 m 到 p:[a-lq-z](减去)
()的使用 -- 组
()将 () 之间括起来的表达式定义为“组”(group),并且将匹配这个表达式的字符保存到一个临时区域,这个元字符在字符串提取的时候非常有用。捕获组可以通过从左到右计算其开括号来编号。
(d)第一组
((A)(B(C)))第一组 ((A)(B©)) 第二组 (A) 第三组(B©) 第四组©

[a-z]指的范围在a-z
[a-z]{6}6位a-z范围的值
[a-z]*不限制长度范围

转载请注明:文章转载自 http://www.konglu.com/
本文地址:http://www.konglu.com/it/1098055.html
免责声明:

我们致力于保护作者版权,注重分享,被刊用文章【正则表达式在java中使用(regtheory)】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2023 成都空麓科技有限公司

ICP备案号:蜀ICP备2023000828号-2