首页 > 其他分享 >正则表达式学习

正则表达式学习

时间:2023-07-07 13:48:52浏览次数:39  
标签:字符 匹配 正则表达式 等价 学习 使用 表达式

正则表达式学习

语法

正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。

普通字符

普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。这包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号。

pattern desc demo
[ABC] 匹配 [...] 中的所有字符 image-20221130140203001
[^ABC] 匹配除去 [...] 中的所有字符 image-20221130140238825
[A-Z] [A-Z] 表示一个区间,匹配所有大写字母,[a-z] 表示所有小写字母。 image-20221130140316887
. 匹配除换行符(\n、\r)之外的任何单个字符,相等于 [^\n\r]。 image-20221130140600050
\s\S 匹配所有。\s 是匹配所有空白符,包括换行,\S 非空白符,不包括换行。 image-20221130140825076
\w 匹配字母数字下划线, 相当于[A-Za-z0-9_] image-20221130141017437

非打印字符

‍♂️这也太抽象了吧, 非打印字符也可以是正则表达式的组成部分。下表列出了表示非打印字符的转义序列:

字符 描述
\cx 匹配由x指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 'c' 字符。
\f 匹配一个换页符。等价于 \x0c 和 \cL。
\n 匹配一个换行符。等价于 \x0a 和 \cJ。
\r 匹配一个回车符。等价于 \x0d 和 \cM。
\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。注意 Unicode 正则表达式会匹配全角空格符。
\S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
\t 匹配一个制表符。等价于 \x09 和 \cI。
\v 匹配一个垂直制表符。等价于 \x0b 和 \cK。

特殊字符

特别字符 描述
$ 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 '\n' 或 '\r'。要匹配 $ 字符本身,请使用 $。
( ) 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 ( 和 )。
* 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 *。
+ 匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 +。
. 匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 . 。
[ 标记一个中括号表达式的开始。要匹配 [,请使用 [。
? 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 ?。
\ 将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, 'n' 匹配字符 'n'。'\n' 匹配换行符。序列 '\' 匹配 "",而 '(' 则匹配 "("。
^ 匹配输入字符串的开始位置,除非在方括号表达式中使用,当该符号在方括号表达式中使用时,表示不接受该方括号表达式中的字符集合。要匹配 ^ 字符本身,请使用 ^。
{ 标记限定符表达式的开始。要匹配 {,请使用 {。
| 指明两项之间的一个选择。要匹配 |,请使用 |。

标签:字符,匹配,正则表达式,等价,学习,使用,表达式
From: https://www.cnblogs.com/aaalei/p/17534721.html

相关文章

  • SpringMVC学习巩固(页面跳转——重定向与转发)
    **要求方法返回值为String**默认:逻辑视图视图解析器找到对应的页面Handler中返会的String类型为跳转到的页面eg:return"hello";则执行方法后页面会跳转到hello.html重定向forward:@GetMapping("forward")publicStringforward(Stringpath){Sy......
  • 学习笔记407—读者们的福音,Z-Library又双叒回归了!
    读者们的福音,Z-Library又双叒回归了!而且还支持桌面客户端。1、官网链接:https://zh.go-to-zlibrary.se/#useful_link_tab2、网页入口:https://singlelogin.se/ ......
  • 学习C++这一篇就够了(进阶篇)
    ​内存模型C++在执行程序的时候,将内存方向划分为4个区域:代码区:存放二进制代码,由操作系统进行管理全局区:存放全局变量、静态变量、常量,程序结束后由操作系统释放栈区:存放函数参数、局部变量,由编译器自动分配和释放堆区:由开发者申请分配和释放,若程序员不释放,程序结束由......
  • 万能欧几里得算法学习笔记
    万能欧几里得算法万能欧几里得算法用于解决一类与\(\left\lfloor\frac{p\cdotx+r}{q}\right\rfloor\)有关的和式求解问题,例如类欧几里得算法中提到的和式就属于此类问题。但万能欧几里得算法从几何意义出发能处理更广泛的和式类型。例如\(\sum_{x=0}^{l}A^xB^{\left\lfloor\f......
  • 正则表达式学习
    #正则表达式学习##语法>正则表达式(regularexpression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。##普通字符>普通字符包括没有显式指定为元字符的所有可打印和不可打印字符......
  • Shell基础学习
    Shell基础Shell是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。Shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Shell脚本Shell脚本(shellscript),是一种为shell编写的脚......
  • Linux下alternatives命令学习总结
    在Linux系统中提供了一个alternatives命令,用于在多个同功能的软件,或软件的多个不同版本间选择、切换。简单来说就是版本切换控制。例如,你的操作系统有多个Python版本,例如python3.6,Python3.9,如果不用alternatives命令,那么你可能需要通过手工修改软链接来实现Python版本的切换。......
  • 【快应用】快应用学习之页面周期函数onBackPress无法触发?
    ​【关键词】onBackPress、退出提示 【问题背景】在学习和调试快应用的过程中,我在子页面中的onBackPress()函数中定制了退出的一个弹框提醒,将它作为组件引入父页面中,弹框却无法触发?问题代码如下:子页面<template><!--Onlyonerootnodeisallowedintemplate.--><......
  • 学习 Qt 编程的好书推荐
    最近一段时间,陆陆续续给大家更新了不少基于Qt开发的不错的书籍,可以说每本都不错。不过放在这一堆大家也不知道先看哪个,后看哪个?所以这块给大家列举一下学习的顺序:由浅入深。大家也可以根据自己对于Qt方面的热衷程度与想要学习的深度来决定该看到哪本书籍。1、《QtCreator快......
  • 正则表达式学习
    #正则表达式学习##语法>正则表达式(regularexpression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。##普通字符>普通字符包括没有显式指定为元字符的所有可打印和不可打印字符......