pattern 正则_JAVA 正则表达式

pattern 正则_JAVA 正则表达式1.组(Group)组是正则表达式的一个子集,每个组都有一个编号,通过从左到右计算左括号来进行编号。正则表达式“((A)(B©))”有4个组:((A)(B©))(A)(B©)©组0表示整个正则表达式,除组0外每一个组都被一对括号括住,如果一个正则表达式里面没有括号,则它只有组0即整个表达式。下面是组号的示例程序:Patternp=Pattern.compile(“([0-9]+)([^0-9]+)”);Matcherm1=p.matcher(“namejack,age18

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

1.组(Group)

组是正则表达式的一个子集,每个组都有一个编号,通过从左到右计算左括号来进行编号。正则表达式“((A)(B©)) ”有4个组:
((A)(B©))
(A)
(B©)
©
组0表示整个正则表达式,除组0外每一个组都被一对括号括住,如果一个正则表达式里面没有括号,则它只有组0即整个表达式。下面是组号的示例程序:

Pattern p = Pattern.compile("([0-9]+)([^0-9]+)");
Matcher m1 = p.matcher("name jack, age 18, weight 70, height 178cm");
if (m1.find())
{ 
   
    System.out.printf("group0: %s\n", m1.group());
    System.out.printf("group1: %s\n", m1.group(1));
    System.out.printf("group2: %s\n", m1.group(2));
}
/*程序输出
group0: 18, weight 
group1: 18
group2: , weight 
*/

Jetbrains全家桶1年46,售后保障稳定

2.替换

Matcher对象支持替换操作的方法有:

replaceFirst
replaceAll
appendReplacement和appendTail

replaceFirst替换匹配到的第一个字符串,replaceAll替换所有匹配到的字符串,示例如下:

//替换第一个数字为0

Pattern p = Pattern.compile("[0-9]+");
Matcher m1 = p.matcher("name jack, age 18, weight 70, height 178cm");
String result = m1.replaceFirst("0");
System.out.println(result);
/*程序输出
name jack, age 0, weight 70, height 178cm
*/
//替换所有数字为0
Pattern p = Pattern.compile("[0-9]+");
Matcher m1 = p.matcher("name jack, age 18, weight 70, height 178cm");
String result = m1.replaceAll("0");
System.out.println(result);
/*程序输出
name jack, age 0, weight 0, height 0cm
*/

appendReplacement和appendTail提供了一种更灵活的方式来执行替换操作,和find()方法一起使用来定制每一个匹配到的字符串的替换方式。例如对每一个匹配到的字符串结尾加”0″,示例如下:

//所有字符结尾加0替换
Pattern p = Pattern.compile("[0-9]+");
Matcher m = p.matcher("name jack, age 18, weight 70, height 178cm");
StringBuffer sb = new StringBuffer();
while (m.find()) { 
   
    m.appendReplacement(sb, m.group() + "0");
}
m.appendTail(sb);
System.out.println(sb.toString());
/*程序输出
name jack, age 180, weight 700, height 1780cm
*/

在这里插入图片描述
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/234564.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java泛型详解,史上最全图文详解「建议收藏」

    Java泛型详解,史上最全图文详解「建议收藏」泛型在java中有很重要的地位,无论是开源框架还是JDK源码都能看到它。毫不夸张的说,泛型是通用设计上必不可少的元素,所以真正理解与正确使用泛型,是一门必修课。一:泛型本质Java泛型(generics)是JDK5中引入的一个新特性,泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本质是参数化类型,即给类型指定一个参数,然后在使用时再指定此参数具体的值,那样这个类型就可以在使用时决定了。这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛.

    2022年7月8日
    29
  • MYSQL数据类型_c语言数据类型详解

    MYSQL数据类型_c语言数据类型详解上一篇博客中我们学习了MySQL的基础知识以及表结构的相关操作,知道了MySQL中常用的数据类型有数值型、字符串型、日期时间类型下面我们来使用一下这些数据类型。数值类型首先数值类型分为整型和浮点型我们先来看看整型整型首先创建一个表CREATETABLEint_db(aTINYINT,bSMALLINT,cMIDDLEINT,dINT,eB…

    2022年9月21日
    5
  • 第五章《函数》

    第五章《函数》

    2021年5月28日
    119
  • java图书销售系统_基于Java Web的图书销售管理系统

    java图书销售系统_基于Java Web的图书销售管理系统项目描述本系统是基于jsp的网上图书销售,有比较符合初学者的简单而又不单一的界面,也有繁琐而又不过于抽象的后台数据处理。包含分类的登录用户(用户与管理员权限与界面不一),功能,登录与未登录有相应的权限设置,正常用户的图书检索与添加购物车、购买等操作。管理员可管理后台的各种信息。数据库中包含触发器用于图表的更新。作为平时与数据库、javaweb等相关的课程设计、大作业,特别适合初学者学习。奉上(包…

    2022年6月12日
    32
  • bridge桥接模式_Bridge模式

    bridge桥接模式_Bridge模式bridge模式动机案例要点总结笔记动机由于某些类型的固有的实现逻辑,使得他们具有两个变化维度,乃至多个维度的变换如何应对这种”多维度的变化“?如何利用面向对象技术来是使得类型可以轻松地沿着两个乃至多个方向变换而不引入额外地复杂度?案例PC端和Mobile端平台和业务分离朴素class Messager{ public: virtual void Login(string username,string password) = 0; virtual void SendM

    2022年8月11日
    6
  • 平均数中位数众数的实际意义_频率分布直方图平均数

    平均数中位数众数的实际意义_频率分布直方图平均数平均数:反映了一组数据的平均大小,常用来一代表数据的总体“平均水平”。中位数:像一条分界线,将数据分成前半部分和后半部分,因此用来代表一组数据的“一般水平”。众数:反映了出现次数最多的数据,用来代表一组数据的“多数水平”。平均数:与每一个数据都有关,其中任何数据的变动都会相应引起平均数的变动。主要缺点是易受极端值的影响,这里的极端值是指偏大或偏小数,当出现偏大数时,平均数将会被抬高,当出现…

    2025年12月13日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号