德胜云资讯,添加一些关于程序相关的内容,仅供大家学习交流(https://www.wxclwl.com)

网站地图

搜索
德胜云咨询
前端分类 javascript CSS 正则表达式 html 前端框架 typescript Ajax
热门标签:
最新标签:

正则表达式手写正则表达式-你也可以正则表达式中@表示什么太疯狂了,

日期:2023/03/17 15:01作者:林慧颖人气:

导读:开发中我们总是或多或少的会使用到正则表达式,比如账号、手机号、密码、身份证号、银行卡号等等。你可能说这些我们写代码也能实现,但正则表达式可以说能用一行代码解决你几十行甚至百行的代码。 下面我们就一起学写下正则表达式,看完相信你自己可以随意写一个你需要的表达式,文末我也给大家总结了当下常用的表达式,希望对大家有所帮助。...

开发中我们总是或多或少的会使用到正则表达式,比如账号、手机号、密码、身份证号、银行卡号等等。你可能说这些我们写代码也能实现,但正则表达式可以说能用一行代码解决你几十行甚至百行的代码。

下面我们就一起学写下正则表达式,看完相信你自己可以随意写一个你需要的表达式,文末我也给大家总结了当下常用的表达式,希望对大家有所帮助。

正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")(学习的重点)。其使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。虽然它的书写有点繁琐,但也是强大的,学会之后的应用会让你除了提高效率外,会给你带来绝对的成就感。

下面我们来具体看下其语法结构:

正则表达式(严格区分大小写)可以适用于多种开发语言,测试代码均以java为例。

Java中的正则校验

普通字符:

普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。这包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号。当我们的正则表达式为一串普通字符(不包含元字符)时,校验字符串只有和正则一致时,才会校验通过。

元字符:

以上为部分元字符截图,下面我们分别对其做一一解释和测试。

表达式: \d 表示一个数字字符

如: ABC\d 表示必须以“ABC”开头,且以一个数字结尾。

\D 表示一个非数字字符

如: ABC\D 表示必须以“ABC”开头,且不是以一个数字结尾。

如果在对应的字符串后写多个,表示匹配多次,如ABC\d\d\d,表示ABC后面匹配三个数字。

表达式: \w 表示一个字母(大小写均可)、数字,或下划线

如: ABC\wDEF 表示“ABC”和“DEF”中间必须是一个字母,数字,或下划线。

\W 表示这个位置的字符既不是字母、数字,也不是下划线。(特殊符号(除下划线),或者空格等满足)

如: ABC\WDEF 表示“ABC”和“DEF”中间既不是一个字母和数字也不是下划线。

表达式: \s 表示匹配一个看不见的符号,即空格或制表符(Tab键)

如: ABC\sDEF 表示“ABC”和“DEF”中间必须是一个空格或制表符。

\S 表示一个可以看得见的符号。

如: ABC\SDEF 表示“ABC”和“DEF”中间可以看得见的符号(如:+ - * /等等)。

表达式: .(小数点) 表示“\n”和"\r"之外的任何单个字符

表达式: |(竖线) 表示或的关系,表示检测的字符串须满足其中一个时,才符合条件。

如: AB|CD|EF 表示“AB”或“CD”或“EF”中间的其中一个即可。

表达式: [ABC] [ ] 表示匹配其中任意一个字符。

如:A[ABC]E:则表示A和e的中间须是A,或B,或C其中的一个

[^ABC] [^ ] 表示不与中括号里的任意字符匹配。

如:A[^ABC]E:则表示A和E的中间除A,B,C这三个字符外,其他的字符都满足。

表达式: [1-5] [值1-值2] 则表示值1到值2中间的所有字符都满足(包括值1和值2)。 常用该正则来表示大小写字母范围,数字范围。

如:A[1-5]B:等同于 A[12345]B,因为 1-5 其实就是1,2,3,4,5五个数。

[^1-5] [^值1-值2] 则表示除值1和值2之外的所有字符,都可以满足。

如:A[^1-3]B:则表示A和B中间的字符,只要不是1,2,3,则都满足。

表达式:? 表示匹配前面的子表达式零次或一次。

如:ABC?DE: 表示可匹配的字符串为 ABDE (匹配0次C) 或 ABCDE (匹配1次C)。

表达式:+ 表示匹配前面的子表达式一次或多次 (次数 >= 1,即至少1次)

如:ABC+DE:AB 和 DE 之前至少有一个 C 。

表达式:{n} 这里的 n 是一个非负整数。匹配确定的前面的子表达式 n 次。

如:ABC{3}DE:表示 AB 和 DE 之间有3个C。

表达式:{n,m} m和n均为非负整数,其中 n<=m。最少匹配 n 次且最多匹配 m 次。

如:ABC{2,3}DE:表示 AB 和 DE 之间有 2 到 3 个 C。

表达式:* 表示匹配前面的子表达式任意次。

如:ABC*DE:表示 AB 和 DE 之间有任意个数(包括0)C 。

修饰符(标记)

标记也称为修饰符,正则表达式的标记用于指定额外的匹配策略。

标记不写在正则表达式里,标记位于表达式之外,格式如下:

/正则表达式/flags

运算符优先级

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

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

常用正则表达式地址

https://gitee.com/zhangjinhai-group/utils.git

一分钟学会,Java生产健康码、行程码、场所码等各种二维码

Java中的双胞胎怎么分辨?(比较并获取不同字段)

MySql、Redis、Nginx开机自启配置

举报/反馈

排行

网站地图

Copyright © 2002-2022 香港德胜云网络 版权所有 | 备案号:蜀ICP备2023007363号-5

声明: 本站内容全部来自互联网,非盈利性网站仅供学习交流