java正则表达式提取字符串,java提取字符串中的指定字符

往往有很多需求,需要取出指定字符之间的字符串,取的方式有多种,关系到重复使用的问题,如abc123abc456abc,如果使用正则取出abc之间的内容,这里可能有两种结果,

结果1: 123 456

结果2: 123

为什么有两种结果呢

这里的一个区别就是,abc能否重复使用的问题,结果1就是abc重复使用了,而结果2中取法,abc不可重复使用

下面代码取出abc之间的内容

public static void main(String args) { /Pattern p = Pattern.compile("\\@(.*?)\\:");//正则表达式,取=和|之间的字符串,不包括=和| String filetext = "abc张小名abc 25分abc李小花abc 43分abc王力abc 100分abc"; Pattern p = Pattern.compile("abc(.*?)abc"); Matcher m = p.matcher(filetext); while(m.find()) { System.out.println(m.group());//m.group(1)不包括这两个字符 }

结果为:

张小名

李小花

王力

很明显,上面的正则取法是不可重复的匹配法,每次匹配后,abc不可下次使用

我们在改下代码

public static void main(String args) { String filetext = "abc张小名abc 25分abc李小花abc 43分abc王力abc 100分abc"; //Pattern p = Pattern.compile("abc(.*?)abc");//正则表达式 会消耗字符串abc Pattern p = Pattern.compile("(?<=abc)(.*?)(?=abc)");//不消耗字符串abc Matcher m = p.matcher(filetext); while(m.find()) { System.out.println(m.group(1));//m.group(1)不包括这两个字符 } }

运行结果:

java正则表达式提取字符串,java提取字符串中的指定字符

这里我们可以看到,这种正则匹配是可以重复使用abc的,也就是指针没有下移,把abc之间的内容都娶到了

以上是两种正则的区别,需要根据实际场景来使用

关于正则表达式引擎,可以参考下图来学习

java正则表达式提取字符串,java提取字符串中的指定字符

java正则表达式提取字符串,java提取字符串中的指定字符

(?:pattern) 与 (?=pattern)也有一些区别,主要在于消耗字符、是否输出匹配结果方面,如下图已经说得很清楚了

java正则表达式提取字符串,java提取字符串中的指定字符

本文【java正则表达式提取字符串,java提取字符串中的指定字符】由作者: 递归 提供,本站不拥有所有权,只提供储存服务,如有侵权,联系删除!
本文链接:https://www.cuoshuo.com/blog/4646.html

(0)
上一篇 2023-03-17 08:42:20
下一篇 2023-03-17 08:57:11

相关推荐

  • sql数据库开发是什么,sql数据库常用命令

    SQL 是一种非常常见但功能强大的工具,它可以帮助从任何数据库中提取、转换和加载数据。 数据查询的本质在于SQL。 随着公司和组织发现自己处理的数据量迅速增加,开发人员越来越需要有效地使用数据库来处理这些数据。 所以想要深入数据领域,SQL是必须的! 要掌握这门语言,你需要知道如何使用一些命令——其中大部分命令都基于一些基本命令。 对于整篇文章,我使用的是一…

    2023-03-15
    600
  • 企业工资管理系统软件,车间员工计件工资软件

    对于很多工厂来说,计算工人工资主要按考勤时间和计件数量两种方式来进行,有时有些企业会按考勤和计件两种结合的方式来计算工人工资,计算起来十分复杂。通过工资计算软件能够很好地解决工人计件工资的问题,工人的计件工资用什么软件好?这里我们推荐东宝计件工资软件,不仅能够自动计算考勤和计件工资,而且还支持工人核对计件量,下面我们来了解下东宝计件工资软件的主要功能。 1、…

    2023-03-14
    500
  • MATLAB假设检验的例题_概率论假设检验例题

    两类错误存在此消彼长的情况,一般通过控制α来制约β 一共有双侧假设检验、左侧假设检验、右侧假设检验三类问题。

    2023-03-19
    000
  • python怎么引入数学函数_python计算函数值

    前言 上一篇文章中介绍了Python定义函数参数和传参的实现,详情可查阅:Python编程:函数参数定义与传递方式。本期内容主要详细介绍如何定义函数输入参数以及实战规则。老规矩,辅助加深理解的示例代码,比便于实操。 闲话少叙,开始正文——记得点赞 + 关注@传新视界 ,前进不迷路 ^_^ 本文内容主要涉及如下几个主题方法,文章有点长,请收藏以便查阅。 函数参…

    2023-03-09
    700
  • static变量和static代码块_static变量的作用

    1. 概述 static 是一种修饰符 static 是Java中表静态的关键字 它可以修饰成员变量、成员方法、代码块 被static修饰的成员变量或成员方法,将不再依赖于对象的创建而去使用,而是依赖类的存在,成为类成员或类方法,是共享的(下面将会详细的解释)。 2. static修饰成员变量 2.1 常见的修饰符 public 修饰符 private 修饰…

    2023-03-09
    600
  • 正则表达式不包含空格

    前言 正则表达式作为一名合格的程序员的必备的基本技术之一,其有用性不言而喻。但是它为什么会非常难以掌握,甚至想用一用也都感觉难以下手呢?本文将会让你一次就看会如何使用Python正则表达式。 1. 正则表达式的组成 在介绍如何使用Python的正则表达式时,我们需要先认识一下正则表达式的各种功能,以及其组成形式如何。 正则表达式可以从非结构化的文本中提取到我…

    2023-03-17
    100
  • 整型转字符串函数 java_字符串转整形java

    QString(字符串类) 直接支持字符串和整形互相转换、不同字符编码的相互转换、str::string和str::wstring的相互转换、支持正则表达式的应用 1.QString QString提供了一个二元的“+”操作符用于组合两个字符串,并提供了一个“+=”操作符用于将一个字符串追加到另一个字符串的末尾。例如: QString ster=”hello…

    2023-03-11
    300
  • 什么是云服务简单说法 手机云服务有必要开吗

    云,就是在线的意思,现如今手机内存最大的也就一个T,比如坚果R1,一部蓝光电影2个g,一部手机有就能存1024/2=512部!其实这没多少,一些做网商的不用一年就能给存满了! 那么有了“云”以后,手机里的东西都可以备份到“云服务”上面!像百度云之类的新用户都会送你几个t,各手机厂商也有自己的云服务器,因为有自己的云服务器,苹果还敢在2020年卖64g内存的i…

    2023-03-16
    100
  • linux系统安装java环境

    手动安装可以让用户更好的控制 Java 运行时环境。 使用 Linux 发行版的软件包管理工具来安装 Java 软件包是很容易的。然而,有时你需要手动安装 Java。这对基于 Java 的应用服务器(如 Tomcat 或 JBoss)的管理员特别重要。许多开源和专有软件产品都依赖于这些服务。 开发者或运行时套件? Java 虚拟机Java Virtual M…

    2023-03-20
    000
  • solidworks动画制作教程 solidworks教学

    方法: 1.首先对模型进行装配,装配完成之后如下图所示。 2.点击SolidWorks窗口左下侧的“运动算例1”选项,如下图所示。 我们可以看到如下图所示的窗口。使用鼠标将红色箭头所指的竖线拖拽到5秒的位置,如下图所示。 使用鼠标左键拖动下图黄色的零件到零件的另一端,如下图所示。 我们可以系统会自动产生如下图所示的键码。这一段我们使用默认的线性插值模式。 3…

    2023-03-16
    200

发表回复

登录后才能评论
返回顶部
错说博客上线啦!