正则表达式在日常开发应用中还是经常用到的,下面把学习笔记简单的记录下。

元字符

字符 描述
\ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,‘n’ 匹配字符 “n”。’\n’ 匹配一个换行符。序列 ‘\’ 匹配 “” 而 “(” 则匹配 “(”。
^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 ‘\n’ 或 ‘\r’ 之后的位置。
$ 匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性,$ 也匹配 ‘\n’ 或 ‘\r’ 之前的位置。
+ 匹配前面的子表达式一次或多次。例如,‘zo+’ 能匹配 “zo” 以及 “zoo”,但不能匹配 “z”。+ 等价于 {1,}。
* 匹配前面的子表达式零次或多次。例如,zo* 能匹配 “z” 以及 “zoo”。* 等价于{0,}。
? 匹配前面的子表达式零次或一次。例如,“do(es)?” 可以匹配 “do” 或 “does” 。? 等价于 {0,1}。
{n} n 是一个非负整数。匹配确定的 n 次。例如,‘o{2}’ 不能匹配 “Bob” 中的 ‘o’,但是能匹配 “food” 中的两个 o
{n,} n 是一个非负整数。至少匹配n 次。例如,‘o{2,}’ 不能匹配 “Bob” 中的 ‘o’,但能匹配 “foooood” 中的所有 o。‘o{1,}’ 等价于 ‘o+’。‘o{0,}’ 则等价于 ‘o*’。
{n,m} m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,“o{1,3}” 将匹配 “fooooood” 中的前三个 o。‘o{0,1}’ 等价于 ‘o?’。请注意在逗号和两个数之间不能有空格。
x | y 匹配 x 或 y。例如,‘z |food’ 能匹配 “z” 或 “food”。’(z |f)ood’ 则匹配 “zood” 或 “food”。
[abc] 字符集合。匹配所包含的任意一个字符。例如, ‘[abc]’ 可以匹配 “plain” 中的 ‘a’。

不常见的元字符


运算符优先级

正则表达式从左到右进行计算,并遵循优先级顺序,这与算术表达式非常类似。
相同优先级的从左到右进行运算,不同优先级的运算先高后低。下图从最高到最低说明了各种正则表达式运算符的优先级顺序:

实例:

^[1-9]d*$    //匹配正整数
^-[1-9]d*$   //匹配负整数
^-?[1-9]d*$   //匹配整数
^[1-9]d*|0$  //匹配非负整数(正整数 + 0)
^-[1-9]d*|0$   //匹配非正整数(负整数 + 0)
^[1-9]d*.d*|0.d*[1-9]d*$   //匹配正浮点数
^-([1-9]d*.d*|0.d*[1-9]d*)$  //匹配负浮点数
^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$  //匹配浮点数
^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$   //匹配非负浮点数(正浮点数 + 0)
^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$  //匹配非正浮点数(负浮点数 + 0)^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$   //匹配邮箱[1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}     //匹配IP地址

正则表达式--只求能看懂别人写的正则表达式是什么意思相关推荐

  1. 怎么看懂别人写的单片机项目代码?

    记得刚开始接触代码的时候,总觉得很神秘,也好奇到底是怎样的牛人,才能把这么多复杂的"天书"写出来去. 当时多希望自己一夜之间也拥有这种能力,能自己写代码去把自己的想法通过技术的手段 ...

  2. 看懂别人的代码,和自己能写代码是两回事

    看懂别人的代码,和自己能写代码是两回事--在理解了别人代码中功能后,自己还是要多动手实现 -- 往往这个时候才能有更大的收获. 转载于:https://www.cnblogs.com/lazyboy1 ...

  3. 如何快速看懂别人的代码

    我们在写程式时,有不少时间都是在看别人的代码.  例如看小组的代码,看小组整合的守则,若一开始没规划怎么看,  就会"噜看噜苦(台语) " 不管是参考也好,从开源抓下来研究也好,为 ...

  4. c语言如何快速看懂别人的程序,探究如何快速看懂单片机程序方法

    在现实中,我相信有很多刚刚接触单片机的同学,简直是无从下手,打开一个程序,更会被复杂的结构和密密麻麻的代码吓到,产生退缩的想法,这篇文章带你了解一下单片机程序. 我对单片机的总结:"单片机其 ...

  5. 看懂别人的代码,只是成为高效程序员的第一步!

    作者 | SeattleDataGuy 译者 | 弯月,责编 | 屠敏 出品 | CSDN(ID:CSDNnews) 在为面试做准备的时候,很多软件工程师都花费了大量时间做编程题和完善简历. 最终在找 ...

  6. stream流常用方法_Java8 中用法优雅的 Stream,怪不得我之前总是看不懂别人写的代码!...

    Java8的新特性主要是Lambda表达式和流,当流和Lambda表达式结合起来一起使用时,因为流申明式处理数据集合的特点,可以让代码变得简洁易读 放大招,流如何简化代码 如果有一个需求,需要对数据库 ...

  7. 希望今年能看懂和写出这样的Swift代码

    macOS 终端程序下载 func anyCommonElements<T: Sequence, U: Sequence>(_ lhs: T, _ rhs: U) -> Boolwh ...

  8. 写html前端代码的软件_你能看懂高贵的前端程序员的工作内容?

    高贵的前端程序猿们: 如何在前端开发这种高精尖的技术领域找到心仪的工作?实现在咖啡馆喝喝咖啡敲敲代码就能升职加薪.买房买车.迎娶白富美走上人生巅峰的职业梦想?这篇<进化论:从0到100,前端猿茁 ...

  9. 03-能看懂代码,就是自己写不出来,怎么办?

    怕什么真理无穷 进一步有近一步的欢喜 先抛一个观点 知其然,要知其所以然 这个说起来容易,做起来难. 写不出来代码的时候,不要害怕,不要怀疑自己的能力.首先要从内心告诉自己,你可以的,你可以的,你可以 ...

最新文章

  1. Novas Verdi、Debussy ,Synopsys VCS,Candence NC-Verilog,Mentor Graphics工具介绍
  2. 12.集合:在我的世界里,你就是唯一 / 不可变集合
  3. 2019-05-15 Java学习日记 day5
  4. concurrently同时开启多个监听服务
  5. python-mysql超简单银行转账
  6. python删除链表重复节点_LeetCode-python 82.删除排序链表中的重复元素 II
  7. Git钩子:自定义你的工作流
  8. 计算机图形学_GAMES101-现代计算机图形学课程 全笔记
  9. (转)OPEC神秘的“朋友圈”:全球最大原油对冲基金掌门人安杜兰
  10. 让你了解CEO、COO、CFO、CTO是什么意思
  11. 【综述】(MIT博士)林达华老师-quot;概率模型与计算机视觉”
  12. 不用编写程序代码,送你一个爬虫程序批量采集猫眼电影票房数据
  13. fast路由器服务器未响应,迅捷(FAST)无线路由器设置好了上不了网的解决方法
  14. 微信报修小程序源码(近期维护V3.1.0)
  15. GPU计算能力(Compute Capability)那些事儿
  16. 【报告分享】 2020年汽车产销数据及汽车工业运行情况-中国汽车工业协会(附下载)
  17. 【Flume】Flume入门
  18. java中一个简单的涂鸦程序
  19. 2021-2027全球与中国牛肉罐头市场现状及未来发展趋势
  20. 第十二周 任务四

热门文章

  1. How to exploit MySQL index optimizations
  2. Ajax并不是一种技术(Ajax入门好文章)
  3. Spring|Spring概述
  4. 学习HM微博项目第2天
  5. Mac电脑键盘(ujmiko)不能使用问题记录
  6. 在内卷如此严重的当下,大二小伙逆流而上,首次参加校招成功拿到网易实习offer
  7. RabbitMQ 从入门到精通 消息应答 持久化 交换机 队列 发布确认 集群 等
  8. 计算机专业是武大冷门吗,武汉大学最不好的专业是什么?附武汉大学的弱势专业名单...
  9. 将改写NVMe历史的HMB技术解读
  10. 分享|2020年义务教育入学信息采集今日开始!手把手教您如何快速操作|方格教育