ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

关于正则表达式是一些理解

2022-01-23 12:06:30  阅读:127  来源: 互联网

标签:代表 匹配 数字 正则表达式 理解 关于 字符串 自动机


正则表达式是说一种匹配字符串的模式定义一份规则
他核心的概念是匹配单个字符
就是说正则表达式中是没有字符串这个概念的
正则表达式还有有穷自动机和无穷自动机的概念
有穷自动机就是当你的规则在原字符串中匹配到需要的数据时就返回停止后面的匹配
无穷自动机就是无论如何都会全部匹配一次然后返回你需要的结果
这就是两个理论上的概念大部分正则表达式都是无穷自动机 不用了解太多
他的性能一直都不好他的优势是方便开发人员筛选需要的数据
/ /
在js中使用两个斜杠包裹起来

^代表以什么什么开头
/^666 /代表以666开头的字符串
$美元符合是结尾的意思
匹配以什么什么结尾


限定符
*和+ 星号和加好是修饰符
用来修饰前面的字符
*代表0个或多个
+代表1个或多个
?代表0个或1个

.一个英文字符点代表匹配除了换行符\n之外任意字符
数字用\d 反斜杠d 表示
\d+就代表匹配一个或者多个数字
\d*代表0个或多个数字
同时*和+星号和加号同时也是一种贪婪匹配的东西就是说他会吧匹配的原字符串遍历很多次非常消耗性能

上面我们提过\d代表一个个位的数字
\d\d代表连续两个数字
\d\d\d代表三个
那么要是更多呢 100个呢
这个时候我们需要引申一个新的概念
{}花括号 花括号里面只能写数字也和*+一样是修饰前面的东西
比如6{5} 代表匹配连续5个6
a{7}匹配连续7个a
[0-9a-zA-Z]{4}匹配连续四个数字或者字母的组合
z{2,3}花括号里面写逗号代表范围 匹配连续两个或者三个z
z{1,9}代表匹配一到9个连续的z
z{9,1} 正则表达式中花括号内第一个参数必须比第二个小否则没有返回值

[]中括号代表的是或的意思
[0-9]-短横线代表的是范围 就是0到9之间的数字
[a-z] 代表一个小写字母
[A-Z]代表一个大写字母
[0-9a-zA-Z]代表任意一个数字或字母 9和a之间还有z和A之间都不用写空格可用\w代替
[^a-z]中括号里面的次方符合代表非 就是说匹配非小写字母的字符
还有一个[0-9]我们都知道匹配0到9这10个数字 那么我们要是想匹配-那应该怎么写呢[-0-9]就可以了这个就代表-或者0到9之间的一个字符

/ /g 正则表达式后面加一个g代表全文检索的意思
和有穷自动机无穷自动机不是同一个概念是两个层面的意思

()这个代表选择的意思
比如'/^177(\d{4})\d{4}/'就代表匹配177开头并且后面更正八位数字的字符串
正常来说会返回一个字符串 但是家了小括号就会返回一个字符串数组第一个就是全部规则的匹配结果 第二个就是小括号里面的内容前面三位是177并且后面四位都是数字的四位数

 

 

标签:代表,匹配,数字,正则表达式,理解,关于,字符串,自动机
来源: https://blog.csdn.net/l575663559/article/details/122649347

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有