正则表达式=Regex=regular expression

正则表达式=Regex=regular expression

反向引用*2

\index索引引用

\b(\w+)\b\s+\1\b

\k

\b(?

数量符/限定符62

贪婪Greedy

懒惰Lazy(加一个?)

0或1次

至少0次

至少1次

{m}

{m}?

必须m次

{m,}

{m,}?

至少m次

{m,n}

{m,n}?

至少m次,至多n次

空白符\s*5

Form feed=换页

new line=换行

Carriage return=回车

horizontal table=水平制表符

vertical table=垂直制表符

转义符*22

表示位置的转义符*8

^$\b\B\A\z\Z\G

^表示行首位置$表示行尾位置

\b表示单词边界位置\B非单词边界位置

\A字符串开始位置\z字符串结束位置

\Z字符串结束位置或\n前一个位置

\G上一个匹配结束位置

表示字符集的转义符*7

.\w\W\d\D\s\S

.表示除了\n之外的所有字符

\w表示字母数字下划线和汉字\W表示取反或者补集

\d表示0-9的任意一个数字\D表示取反或者补集

\s表示空白符集合\S表示取反或者补集

表示其他含义的转义符*7

|(){}

|表示逻辑或运算

()表示提高运算优先级、或者表示提取组、或者表示子表达式

[]表示字符集
{}表示字符出现的次数

[]内的元字符都表示元字符本身所表示的符号,也就是说[]会使元字符失效;[?$^*+]

然而在[]外使用这些元字符本身所表示的字符,则必须加转义字符;\?*+\^

\s=space=空白符;\w=word=单词符(字母+数字+下划线)

\d=decimal digit=十进制数字=0123456789

\s=[\f\n\r\t\v]=[换页、换行、回车、水平制表符、垂直制表符]

\S=[^\f\n\r\t\v]=[^换页、换行、回车、水平制表符、垂直制表符]

\f=Form feed=换页;\n=new line=换行;\r=Carriage return=回车;

\t=horizontal table水平制表符;\v=vertical table=垂直制表符;

\w=[A-Za-z0-9_]=[ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]

\W=[^A-Za-z0-9_]=[^ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]

\d=[0-9]=[0123456789],\D=[^0-9]=[^0123456789]

apple a[\w]+\b IsMatch=True Match=apple
orange a[\w]+\b IsMatch=True Match=ange

apple \ba[\w]+\b IsMatch=True Match=apple
orange \ba[\w]+\b IsMatch=False Match=

a[\w]+\b

解释: a开头,后面接一个或者多个单词符\w(字母、数字、下划线)然后到单词边界\b

\ba[\w]+\b

解释: 从单词边界开始,第一个字母是a开头,后面接一个或者多个单词符\w(字母、数字、下划线)然后到单词边界\b;总的来说就是a开头的单词

注意:正则表达式前要加禁止转义字符@,也就是string regex=@”\ba[\w]+\b”;

$%^&()+= .+ IsMatch=True Match=$%^&()+=
解释:
a开头 .+ IsMatch=True Match=解释:

.表示任意字符\n换行符除外,.+表示至少一个任意字符

对于 “解释: \na开头” .+只能匹配到\n之前的内容;

guangjia@mail.com [\w]+@([\w]+.)+[\w]+ IsMatch=True Match=guangjia@mail.com
XXX@abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijk.com [\w]+@([\w]+.)+[\w]+ IsMatch=True Match=XXX@abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijk.com

p = @”[\w]+@([\w]+.)+[\w]+”;为邮箱正则表达式

解释:[\w]表示单个字符(数字、字母或者下划线),[\w]+可以理解为一个单词

([\w]+.)表示单词加.的组合,()叫做组Group,组后面的+表示该组出现一次或多次;例如sina.com.cn,其中的sina.和com.都是和([\w]+.)匹配match的

总的来说,邮箱格式就是 邮箱名 +@+ 若干个(单词.) + 单词

重复单词的检测

i want an an apple ([\w]+) \1 IsMatch=True Match=an an
dog dog ([\w]+) \1 IsMatch=True Match=dog dog

解释: ([\w]+)表示一个单词,\1表示对这个单词的引用,也叫反向引用;就是说前面出现apple,后面的\1也必须是apple,才能match匹配

\1表示对之前的第一个小括号组的引用
white cat white cat ([\w]+) ([\w]+) \1 \2 IsMatch=True Match=white cat white cat

解释:\1 \2分别表示对前面的第一个小括号组的引用,和对第二个小括号组的引用,引用的意思就是内容必须相同,第一个小括号是red \1也必须是red 第二个小括号是green\2也必须是green,两个引用同时匹配的才能match
hot hot dog dog ([\w]+) \1 ([\w]+) \2 IsMatch=True Match=hot hot dog dog

www.9377.com www.([\w]+.)+[a-z]+ IsMatch=True Match=www.9377.com

解释:www网址匹配,以www.开头,后跟若干个(单词.)最后再跟一个单词(例如顶级域名com cn等等)
https://partners.adobe.com/ http[s]?://([\w]+.)+[a-z]+ IsMatch=True Match=https://partners.adobe.com

解释:htttp网址,以http://或者https://开头,?表示[s]出现的次数为0或1,后面的匹配项与www网址类似,不再赘述;

A Chinese defense spokesperson on Thursday responded to provocative acts of Australian and Canadian military aircraft, and warned that those who come uninvited will bear the consequences.
\b[aA][\w]* IsMatch=True Match=A,acts,Australian,and,aircraft,and,

解释:a或A开头的所有单词,\b表示单词的边界,也就是开头,[aA]表示a或者A,默认出现一次;[\w]* 表示单词的后续部分,可以有0个或多个任意单词符;
A Chinese defense spokesperson on Thursday responded to provocative acts of Australian and Canadian military aircraft, and warned that those who come uninvited will bear the consequences.
[\w]+a[\w]+ IsMatch=True Match=Thursday,provocative,Australian,Canadian,military,aircraft,warned,that,bear,

A Chinese defense spokesperson on Thursday responded to provocative acts of Australian and Canadian military aircraft, and warned that those who come uninvited will bear the consequences.
\b[a-z-[a-h]][\w]* IsMatch=True Match=spokesperson,on,responded,to,provocative,of,military,warned,that,those,who,uninvited,will,the,

匹配年份

1998\10\20 \d?\d?\d\d[\.-/]\d?\d[\.-/]\d?\d IsMatch=True Match=1998\10\20
22-12-31 \d?\d?\d\d[\.-/]\d?\d[\.-/]\d?\d IsMatch=True Match=22-12-31

p = @”\d?\d?\d\d[\.-/]\d?\d[\.-/]\d?\d”;//日期:年月日

解析:\表示反斜杠、-表示连字符,这里虽然放置了禁止转义符@,里面仍要加转义字符\,否则转义字符识别失败;

成员名称

UppercaseLetter

指示字符是大写字母。

LowercaseLetter

指示字符是小写字母。

TitlecaseLetter

指示字符是词首字母大写字母。

ModifierLetter

指示字符是修饰符字母,它是独立式的间距字符,指示前面字母的修改。

OtherLetter

指示字符是字母,但它不是大写字母、小写字母、词首字母大写或修饰符字母。

NonSpacingMark

指示字符是非间距字符,这指示基字符的修改。

SpacingCombiningMark

指示字符是间距字符,这指示基字符的修改并影响该基字符的标志符号的宽度。

EnclosingMark

指示字符是封闭符号,封闭符号是非间距组合字符,它环绕直到基字符(并包括基字符)的所有前面的字符。

DecimalDigitNumber

指示字符是十进制数字,即在范围 0 到 9 内。

LetterNumber

指示字符是由字母表示的数字,而不是十进制数字,例如,罗马数字 5 由字母”V”表示。

OtherNumber

指示字符是数字,但它既不是十进制数字也不是字母数字,例如分数 1/2。

SpaceSeparator

指示字符是空白字符,它不具有标志符号,但不是控制或格式字符。

LineSeparator

指示字符用于分隔文本各行。

ParagraphSeparator

指示字符用于分隔段落。

Control

指示字符是控制代码,其 Unicode 值是 U+007F,或者位于 U+0000 到 U+001F 或 U+0080 到 U+009F 范围内。

Format

指示字符是格式字符,格式字符是通常不呈现的字符,但它影响文本布局或文本处理操作。

Surrogate

指示字符是高代理项还是低代理项。代理项代码值在范围 U+D800 到 U+DFFF 内。

PrivateUse

指示字符是专用字符,其 Unicode 值在范围 U+E000 到 U+F8FF 内。

ConnectorPunctuation

指示字符是连接两个字符的连接符标点。

Punctuation英 /ˌpʌŋktʃuˈeɪʃn/ 美 /ˌpʌŋktʃuˈeɪʃn/

n. 标点符号

DashPunctuation

指示字符是短划线或连字符。

OpenPunctuation

指示字符是成对的标点符号(例如括号、方括号和大括号)之一的开始字符。

ClosePunctuation

指示字符是成对的标点符号(例如括号、方括号和大括号)之一的封闭字符。

InitialQuotePunctuation

指示字符是开始或前引号。

FinalQuotePunctuation

指示字符是封闭或后引号。

OtherPunctuation

指示字符是标点,但它不是连接符标点、短划线标点、开始标点、结束标点、前引号标点或后引号标点。

MathSymbol

指示字符是数学符号,例如”+”或”=”。

CurrencySymbol

指示字符是货币符号。

ModifierSymbol

指示字符是修饰符符号,这指示环绕字符的修改。例如,分数斜线号指示其左侧的数字为分子,右侧的数字为分母。

OtherSymbol

指示字符是符号,但它不是数学符号、货币符号或修饰符符号。

OtherNotAssigned

指示字符未被分配给任何 Unicode 类别。

Original: https://www.cnblogs.com/zhangdezhang/p/16434722.html
Author: 张德长
Title: 正则表达式=Regex=regular expression

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/613153/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 阿里巴巴编码规范-考试认证

    阿里巴巴编码规范-考试认证 雨打梨花深闭门,忘了青春,误了青春。 1、注册阿里云账号 2、购买认证 需要怒支付一顿早餐Q,可以用支付宝支付,选择支付宝支付然后直接输入支付密码就OK…

    数据库 2023年6月14日
    0183
  • Mysql之Binlog

    1、简述 binlog 二进制日志文件,这个文件记录了MySQL所有的DML操作。通过binlog日志我们可以做数据恢复,增量备份,主主复制和主从复制等等。 2、Docker中无法…

    数据库 2023年5月24日
    0133
  • 获取不到http请求头自定义参数

    对外提供的API,需请求方在http请求头中传app_id(下划线分割) 然后服务端通过request.getHeader(“app_id”)获取不到对应的…

    数据库 2023年6月11日
    079
  • Redis-主从

    数据库的发展总是从 单机 -> 主从 -> 分片集群 Redis的主从复制 从单机到主从的根本优势在于: 可实现读写分离,分摊读压力;某个从库用于做统计等后台功能 数据…

    数据库 2023年6月11日
    0102
  • Java 考试系统项目源码 springboot mybaits vue.js 支持手机端考试

    新增功能:培训学习模块, PDF电子课程、视频课程、直播课程(自己搭建直播流服务器) 人脸识别(考试时验证,有开关)、补考开关 组建试卷:创建试卷,题目、类型、总分、及格分数、时长…

    数据库 2023年6月6日
    081
  • 我竟然才知道slf4j里还有个MDC

    大家好久不见,我是walking。今天给大家带来一个日志方面的知识——MDC,不知道大家认识不,反正我是最近刚知道的😂 初见MDC 前两天看项目中的代码,无意中看到一个自定义的线程…

    数据库 2023年6月11日
    0147
  • sed语句用法

    sed编辑器 sed是一种流编辑器,流编辑器会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。 sed编辑器可以根据命令来处理数据流中的数据,这些命令要么从命令行中输入,要…

    数据库 2023年6月14日
    083
  • 学习笔记——Django项目中的F对象,Q对象,聚合函数,排序

    2022-09-30 F对象: 在shell中是用于两个有关联的属性之间的查询。 使用实例: 查询书籍表中阅读量大于评论量的记录 前提,进入pycharm,进入虚拟环境,进入she…

    数据库 2023年6月14日
    086
  • Centos7开放及查看端口

    Centos7开放及查看端口 1、开放端口 firewall-cmd –zone=public –add-port=5672/tcp –permanent # &#x…

    数据库 2023年6月6日
    0103
  • Java集合详解

    Java集合 集合体系 Collection接口 Collection接口没有直接的实现子类,它的子接口list(有序容器,可以重复)和set(无序容器,不可重复)是两个重要的子接…

    数据库 2023年6月16日
    091
  • Mysql 手册

    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQ…

    数据库 2023年5月24日
    0120
  • Spring Boot中异步请求和异步调用

    一、SpringBoot中异步请求的使用 1、异步请求与同步请求 特点: 可以先释放容器分配给请求的线程与相关资源,减轻系统负担,释放了容器所分配线程的请求,其响应将被延后,可以在…

    数据库 2023年6月14日
    088
  • Dev-tools使用遇到的小问题

    Dev-tools使用遇到的小问题 间隔长时间后重新打开某网页,提示Failed to load data:No resource with given identifier fo…

    数据库 2023年6月6日
    085
  • tomcat部署war包 首页面默认展示自己定义的页面

    将项目war包部署到tomcat的webapps后,http://localhost:8080 展示tomcat页面,http://localhost:8080/appName展示…

    数据库 2023年6月16日
    081
  • SFML学习之配置环境(VS2019)

    vs2019 SFML环境配置 主要就是两个地址和一个链接的设置 一切的源头都在官网:SFML官网:https://www.sfml-dev.org/download.php 下载…

    数据库 2023年6月11日
    074
  • Mysql学习

    显示字符集编码 mysql架构 逻辑架构 Client : 提供连接MySQL服务器功能的常用工具集 Server : MySQL实例,真正提供数据存储和数据处理功能的MySQL服…

    数据库 2023年6月16日
    065
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球