php建设网站用什么软件,套餐网站,济宁市建设银行网站,公司简历模版概述正则表达式是很多运维薄弱的一项技能。大家很多时候都会觉得正则表达式难记、难学、难用#xff0c;但不可否认的是正则表达式是一项很重要的技能#xff0c;所有今天将学习和使用正则表达式时的关键点整理如下#xff0c;仅供参考。什么是正则表达式#xff1f;正则表…概述正则表达式是很多运维薄弱的一项技能。大家很多时候都会觉得正则表达式难记、难学、难用但不可否认的是正则表达式是一项很重要的技能所有今天将学习和使用正则表达式时的关键点整理如下仅供参考。什么是正则表达式正则表达式(Regular Expression 或 Regex)是用于定义某种特定搜索模式的字符组合。正则表达式可用于匹配、查找和替换文本中的字符进行输入数据的验证查找英文单词的拼写错误等。调试工具下面列出了几款优秀的在线调试工具如果你想创建或者调试正则表达式可能会需要。个人比较偏好Regex101regex101 支持在正则表达式的不同 flavor 之间切换、解释你的正则表达式、显示匹配信息、提供常用语法参考等功能非常强大。1、Regex1012、Regexr3、Regexpal开始在 Javascript 中一个正则表达式以 / 开头和结尾所以简单至 /hello regexp/ 就是一个正则表达式。Flags(标志符或修饰符)Flags 写在结束的/之后可以影响整个正则表达式的匹配行为。常见的 flags 有g全局匹配(global)正则表达式默认只会返回第一个匹配结果使用标志符g则可以返回所有匹配i忽略大小写(case-insensitive)在匹配时忽略英文字母的大小写m多行匹配(multiline)将开始和结束字符(^和$)视为在多行上工作即分别匹配每一行(由 或 分割)的开始和结束而不只是只匹配整个输入字符串的最开始和最末尾处Flags 可以组合使用如Character Sets(字符集合)用于匹配字符集合中的任意一个字符常见的字符集有[xyz]匹配 x或yz[^xyz]补集匹配除 x y z的其他字符[a-z]匹配从 a 到 z 的任意字符[^a-n]补集匹配除 a 到 n 的其他字符[A-Z]匹配从 A 到 Z 的任意字符[0-9]匹配从 0 到 9 的任意数字比如匹配所有的字母和数字可以写成/[a-zA-Z0-9]/ 或者 /[a-z0-9]/i。Quantifiers (量词)在实际使用中常需要匹配同一类型的字符多次比如匹配 11 位的手机号我们不可能将 [0-9] 写 11 遍此时可以使用 Quantifiers 来实现重复匹配。{n}匹配 n 次{n,m}匹配 n-m 次{n,}匹配 n 次?匹配 0 || 1 次*匹配 0 次等价于 {0,}匹配 1 次等价于 {1,}Metacharacters(元字符)在正则表达式中有一些具有特殊含义的字母被称为元字符简言之元字符就是描述字符的字符它用于对字符表达式的内容、转换及各种操作信息进行描述。常见的元字符有d匹配任意数字等价于 [0-9]D匹配任意非数字字符d 的补集w匹配任意基本拉丁字母表中的字母和数字以及下划线等价于 [A-Za-z0-9_]W匹配任意非基本拉丁字母表中的字母和数字以及下划线w 的补集s匹配一个空白符包括空格、制表符、换页符、换行符和其他 Unicode 空格S匹配一个非空白符s的补集b匹配一个零宽单词边界如一个字母与一个空格之间例如/bno/ 匹配 at noon 中的 no/lyb/ 匹配 possibly yesterday. 中的 lyB匹配一个零宽非单词边界如两个字母之间或两个空格之间例如/Bon/ 匹配 at noon 中的 on/yeB/ 匹配 possibly yesterday.中的 ye匹配一个水平制表符(tab)匹配一个换行符(newline)匹配一个回车符(carriage return)实例上面罗列出了这么多正则表达式的语法和规则可以在一定程度上帮助我们分析和理解一段正则表达式的作用但是如何将这些规则组合并创造出有特定作用的表达式还需要我们自己多加练习下面举几个例子来说明运用这些规则。1. 匹配手机号码我们先从比较简单的匹配手机号码开始。目前国内的手机号码是1(3/4/5/7/8)开头的 11 位数字因此手机号码的正则可以分解为以下几部分以 1 开头/^1/第 2 位为3、4、5、7、8中的一个/[34578]/ 或 /(3|4|5|7|8)/剩余 3-11 位均为数字并以数字结尾/d{9}$/组合起来即为 /^1[34578]d{9}$/ 或 /^1(3|4|5|7|8)d{9}$/因为使用捕获括号存在性能损失所以推荐使用第一种写法。2. 匹配电子邮件标准的电子邮件组成为 .每部分的格式标准为(进行了相应的简化主要为展示如何书写正则)yourname任意英文字母(a-z/A-Z)、数字(0-9)、下划线(_)、英文句点(.)、连字符(-)长度大于 0domain任意英文字母(a-z/A-Z)、数字(0-9)、连字符(-)长度大于 0extension任意英文字母(a-z/A-Z)长度 2-8optional-extension.开头后面跟任意英文字母(a-z/A-Z)长度 2-8可选每部分的正则表达式为yourname/[a-zd._-]/domain/[a-zd-]/extension /[a-z]{2,8}/optional-extension/(.[a-z]{2,8})?/组合起来形成最后的正则表达式/^([a-zd._-])([a-zd-]).([a-z]{2,8})(.[a-z]{2,8})?$/为了增加可读性可以将每部分用()包起来并不要忘记起始和结束符 ^$。总结篇幅有限今天关于正则表达式的内容就介绍到这里后面会分享更多devops和DBA方面的内容感兴趣的朋友可以关注下~