正则表达式-分组括号以及捕获分组

这篇具有很好参考价值的文章主要介绍了正则表达式-分组括号以及捕获分组。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

分组:

定义:

在java正则表达式中,( )是分组的意思,每组都有一个组号


如何识别分组?

只看左括号,不看右括号,按照左括号的顺序,从左往右,依次为第一组,第二组,第三组等等,如图:

正则表达式-分组括号以及捕获分组,JAVA正则表达式,正则表达式,java

根据左括号分成了三组

正则表达式-分组括号以及捕获分组,JAVA正则表达式,正则表达式,java


正则表达式中分组有两种:

捕获分组,非捕获分组


捕获分组:

可以获取某一组中的内容反复使用


规则:

正则表达式内部使用:\\ 组号

外:$ 组号

捕获分组 练习 1

需求1:判断一个字符串的开始字符和结束字符是否一致?只考虑一个字符

String regex1="(.).+\\1";
System.out.println("_123_".matches(regex1));//true
System.out.println("_123_1".matches(regex1));//false

(.)表示第一个分组


需求2:判断一个字符串的开始部分和结束部分是否一致?可以有多个字符

String regex2="(.+).+\\1";

System.out.println("ab_123ab_".matches(regex2));//true
System.out.println("asb_123ab_".matches(regex2));//false

需求3:判断一个字符串的开始部分和结束部分是否一致?开始部分内部每个字符也需要一致

String regex3="(.)\\1*.+\\1";
System.out.println("aaa123aaa".matches(regex3));//true
System.out.println("aaa123aab".matches(regex3));//false

(.):匹配任意一个字符,并将其捕获为第一组(\1就是引用这个被捕获的字符)。

\\1*:表示匹配前面捕获的第一组(即与第一个字符相同的字符)零个或多个。

.+:匹配一个或多个任意字符(除换行符外)。

\\1:再次引用第一组捕获的字符,要求以与开头相同的字符结尾。


捕获分组 练习 2:

任务:把重复的内容 替换为 单个的

String str = "今天有亿亿亿亿亿点点点懒懒懒";

String regex="(.)\\1+";

String s = str.replaceAll(regex, "$1");
System.out.println(s);//今天有亿点懒

(.)表示把重复内容的第一个字符看做一组

\\1+表示第一组字符至少再出现一次

$1 表示把正则表达式中第一组的内容,再拿出来用


非捕获分组:

分组之后不需要再用本组数据,仅仅是把数据括起来。不占组号

如:(在“带条件爬取”中已经见过)

正则表达式-分组括号以及捕获分组,JAVA正则表达式,正则表达式,java文章来源地址https://www.toymoban.com/news/detail-813625.html

到了这里,关于正则表达式-分组括号以及捕获分组的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • chatgpt赋能python:Python分组匹配:了解正则表达式中的分组匹配技巧

    在 Python 中,正则表达式是一种重要的文本处理工具,它可以帮助我们在字符串中匹配、查找和替换特定的文本模式。其中,分组匹配是正则表达式的重要特性之一,它可以将匹配的结果按照指定的规则进行分组,以便更好地处理和使用。在本文中,我们将介绍 Python 中的分组

    2024年02月06日
    浏览(47)
  • notepad++配合正则表达式分组模式处理文本转化为sql语句

    一、正则分组知识点补充 正则分组和捕获 ():用于分组和捕获子表达式。 大白话就是()匹配到的数据,通过美元符号加下标可以获取该数据,例如$1、$2, 下标从1开始。 下面的案例就采用该模式处理文本数据 二、使用正则的需求背景 有一份报表的数据,需要把数据入库到m

    2024年02月07日
    浏览(60)
  • Python re.findall()中的正则表达式包含多个括号时的返回值——包含元组的列表

    当 re.findall() 中的正则表达式包含多个括号时,返回值是一个列表,其中每个元素都是一个元组。这个元组的长度与正则表达式中括号的数量相同,元组中的每个元素都是与相应括号中的模式匹配的文本。 输出:

    2024年02月19日
    浏览(51)
  • 利用正则表达式进行爬取数据以及正则表达式的一些使用方法

    Pattern:表示正则表达式 Matcher:文本匹配器,作用按照正则表达式的规则去读取字符串,从头开始读取。 在大串中去找符合匹配规则的子串。 代码示例: 需求: 把连接:https://m.sengzan.com/jiaoyu/29104.html?ivk sa=1025883i中所有的身份证号码都爬取出来。 代码示例: 需求: 把下面文

    2024年02月09日
    浏览(66)
  • 经常使用的正则表达式以及用法

    正则表达式是一种用来匹配字符串的工具,它可以用特定的语法来描述文本中的一些模式,以达到快速检索、替换和处理文本的目的。 它的用处也是很多,比如文本编辑器、搜索引擎、数据库、邮件过滤、语言解析器、爬虫器等等。 工作中,我经常用正则表达式来提取、校

    2024年02月10日
    浏览(50)
  • 正则表达式概念以及语法的使用

    目录 1.概念 2. 为什么使用正则表达式? 3. 语法 1.普通字符 非打印字符 2. 特殊字符 3. 限定符 4. 定位符 5. 运算优先级 3.匹配规则 1. 基本模式匹配 2. 字符簇 3. 确定重复出现 正则表达式(Regular Expression) 是一种文本模式 , 包括普通字符(例如,a 到 z 之间的字母) 和特殊字符(

    2024年02月16日
    浏览(47)
  • Jmeter接口关联(三)【使用正则表达式提取值】以及正则表达式提取器中模板的含义及用法

    文章目录 前言 一、Jmeter中使用正则表达式匹配 1、选择 RegExp Tester 2、在线程组------》添加------》后置处理器-------里面添加一个“正则表达式提取器” 二、关于正则表达式提取器里面字段的解释 参数说明 三、进一步解释Jmeter正则表达式提取器中的模板 1、当模板设置为$0$ 

    2024年02月13日
    浏览(55)
  • Java 之正则表达式语法及常用正则表达式汇总

    正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为 regex、regexp 或 RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。 正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称

    2024年02月09日
    浏览(71)
  • 正则表达式以及 pattern 的撰写方式

    在Python中,可以使用re模块来进行正则表达式的撰写和匹配。下面是一个基本的正则表达式撰写方法示例: 定义正则表达式模式: 其中,r表示原始字符串,可以避免转义字符的问题。

    2024年02月08日
    浏览(59)
  • 【Java】 java | 正则 | 正则表达式 | 强密码

    1、需要验证密码强度 2、使用正则 3、正则 4、java示例

    2024年02月07日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包