首页 > 其他分享 >正则表达式复习五——运算符优先级

正则表达式复习五——运算符优先级

时间:2024-01-15 20:55:20浏览次数:29  
标签:字符 匹配 复习 示例 正则表达式 运算符 优先级

运算符优先级

正则表达式从左到右进行计算,并遵循优先级顺序,这与算术表达式非常类似。

相同优先级的从左到右进行运算,不同优先级的运算先高后低。各种正则表达式运算符的优先级从最高到最低顺序:

序号 字符 含义
1 \ 转义符
2 (), (?:), (?=), [] 圆括号和方括号
3 *, +, ?, {n}, {n,}, {n,m} 限定符(量词)
4 ^, $, \任何元字符任何字符 定位点和序列(即:位置和顺序)
5 竖线 替换,"或"操作

字符具有高于替换运算符的优先级,使得 "m|food" 匹配 "m""food"。若要匹配 "mood""food",请使用括号创建子表达式,从而产生 "(m|f)ood"

一些常见正则表达式运算符按照优先级从高到低的顺序:

  • 转义符号: \ 是用于转义其他特殊字符的转义符号。它具有最高的优先级。

示例:\d\. 等,其中 \d 匹配数字,\. 匹配点号。

  • 括号: 圆括号 () 用于创建子表达式,具有高于其他运算符的优先级。

示例:(abc)+ 匹配 "abc" 一次或多次。

  • 量词: 量词指定前面的元素可以重复的次数。

示例:a* 匹配零个或多个 "a"

  • 字符类: 字符类使用方括号 [] 表示,用于匹配括号内的任意字符。

示例:[aeiou] 匹配任何一个元音字母。

  • 断言: 断言是用于检查字符串中特定位置的条件的元素。

示例:^ 表示行的开头,$ 表示行的结尾。

  • 连接: 连接在没有其他运算符的情况下表示字符之间的简单连接。

示例:abc 匹配 "abc"

  • 管道: 管道符号 | 表示"或"关系,用于在多个模式之间选择一个。

示例:cat|dog 匹配 "cat""dog"

标签:字符,匹配,复习,示例,正则表达式,运算符,优先级
From: https://www.cnblogs.com/xinjie-just/p/17958734

相关文章

  • 14_Java基础-运算符3:逻辑运算符+位
    逻辑运算符&&(与)逻辑与运算,两个变量都为真,结果为true||(或)逻辑或运算,两个变量有一个为真,结果为true!(非)如果是真,则变为假,如果是假则变为真短路运算第一个数为错,后面不执行位运算符&(和)|(或)^(异或)~(取反)位运算,不要轻易用,容易出错,效率极高<<:左移:x2》》:右移:/2......
  • 第二章:变量与运算符
    1.关键字定义:被java语言赋予了特殊含义,用作专门用途的字符串(或单词)特点:全部关键字都是小写字母​官网地址​​​​2.标识符定义:java中变量,方法,类等要素命名时使用的字符序列成为标识符技巧:凡是自己可以起名字的地方都叫标识符。最好是见名知义标识符的命名规......
  • 前K个高频元素 347 暴力法和优先级队列
    关于暴力法简单说一点,我是用链表进行比较排序的,但是有一个细节要注意。点击查看代码structnode{intval;intcount;node*next;node(intval,intcount):val(val),count(count),next(nullptr){}};关于节点的构造函数,一定要构造......
  • 运算符重载及与友元
    友元基本概念:friend关键字只出现在声明处,一个函数或者类作为了另一个类的友元那么这个函数或类就可以直接访问另一个类的私有数据。运算符重载:语法:定义重载的运算符就像定义函数,只是该函数的名字是operator@,这里的@代表了被重载的运算符(例:operator<<)思路:1、识别运算符左......
  • 正则表达式复习四——断言
    断言正则表达式的断言是一种特殊的模式匹配技术,用于在匹配时对字符串进行条件性的预测。断言不会消耗输入字符串,仅仅是在匹配的位置上进行条件判断。断言分为正向断言和负向断言,分别用于描述匹配位置前面或后面的条件。正则表达式的断言有4种形式:(?=pattern)--零宽正向先......
  • 运算符
    运算符的介绍1.算术运算符+,-,*./,%,++,--,重点讲解%、++自增:++作为独立的语句使用:前++和后++都完全等价于i=i+1;作为表达式使用前++∶++i先自增后赋值后++;i++先赋值后自增--,+、-、*是一个道理,完全可以类推。对于除号"/",它的整数除和小数除是有区别的:整数......
  • 关于二进制的原码、补码和反码,以及表示范围、常见位运算符和进制转换的理解与简述
    【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)https://www.cnblogs.com/cnb-yuchen/p/17963363出自【进步*于辰的博客】参考笔记一,P3.13、P5.1;笔记三,P43.1/3、P44.1。注:我暂且没有整理关于二进制、原码、补码和反码等概念的理论,本文中的阐述都基于我对相应......
  • 基本运算符
    【一】参考网站参考网站(菜鸟教程):https://www.runoob.com/python/python-operators.html【二】算数运算符python支持的算数运算符与数学上计算的符号使用是一致的我们以x=9,y=2为例来依次介绍它们【1】加法运算符+x=9y=2result=x+yprint(result)#输出:1......
  • Python 运算符
    数据转换在日常开发中使用频次也是非常高的,了解一下隐式类型转换和显示类型转换。隐式类型转换:我们对两种不同类型的数据做运算,例如整数类型和浮点型运算,这时候我们需要把整数转换为浮点型,避免数据丢失。显式类型转换:在显式类型转换中,用户会将对象的数据类型转换为所需的数据类型。......
  • 无涯教程-LISP - 运算符
    运算符是一个符号,告诉编译器执行特定的数学或逻辑操作。LISP允许对数据进行大量操作,并由各种函数,宏和其他构造支持。允许对数据进行的操作可以归类为-算术运算比较操作逻辑运算按位运行算术运算下表显示了LISP支持的所有算术运算符。假设变量A=10,变量B=20,然后-运算符......