1. 定位符与原义字符:

(1) 文本验证定位符:
定位符用于规定匹配模式在目标字符串中出现的位置。例如,规定匹配模式只能出现在开头或者结尾处,这样对于文本格式的验证非常有用。

用” ^ ” 匹配目标字符串的开始位置:

匹配必须发生在目标字符串的开头处,"^" 必须出现在表达式的最前面才具有定位符作用。
例如,"^o"与"ok"中的"o"匹配,但与"no"中的"o"不匹配。如果设置了RegExp对象实例的multiline属性,"^"还会与行首匹配,即与"\n","\r"之后的位置匹配。

用” $ ” 匹配目标字符串的结尾位置:

匹配必须发生在目标字符串的结尾处," $ "必须出现在表达式的最后面才具有定位符的作用。
例如,"o$"与"no"中的"o"匹配,但与"ok"中的"o"不匹配。如果设置了RegExp对象实例的multiline属性,"$"还会与行末匹配,即与"\n","r"之前的位置匹配。

用 ” \b “匹配一个字边界:

"\b"包含了字与空格间的位置,以及目标字符串的开始和结束位置等。
例如,"er\b"匹配"order to"中的"er",但不匹配"verb"中的"er"。

用 ” \B ” 匹配非字边界:

例如,"er\B"匹配"verb"中的"er",但不匹配"order"中的"er"。

2. 贪婪匹配与懒惰匹配

默认情况下,正则表达式使用最长匹配原则,即贪婪匹配原则。
例如,要将”book”中匹配”bo?”中的部分替换成”l”,替换后的结果是”lok”,而不是”look”;如果要将”book”中匹配”bo*”中的部分替换成”l”,替换后的结果是”lk”,而不是”lok”,或者”look”。
当解释器将代码中的字符解析成一个个的编译器,并在处理代码当前最小语法单元时,编译器会使用一种贪婪匹配算法,也就是说会尽可能让一个单元包含更多的字符。如果当字符”?”紧跟任何其他限定符(“*”,”+”,”?”,”{n}”,”{n,}”,”{n,m}”)之后时,匹配模式变成使用最短匹配原则,即非贪婪匹配原则。例如,在字符串”booook”中,”bo+?”只匹配”bo”部分,而”bo+”匹配”boooo”部分。


3. 选择匹配符
选择匹配符” | “,用于选择匹配两个选项之中的任意一个,其两个选项是” | ” 字符两边尽可能最大的表达式。
例如,”abcd|efghl”,匹配的是”abcd”或”efgh”,而不是”abcdl”或”efghl”;如果要匹配”abcdl”或”efghl”,应该使用括号创建子表达式,即”(abcd|efgh)l”。


4.特殊字符与字符匹配符
正则表达式中使用多种方式来表示非打印字符和原义字符,这些方式都以字符”\”后跟其他转义字符序列来表示,其中的一些方式也可以表示普通字符。字符匹配符用于匹配多个字符中的任意一个。
(1) 特殊字符

(2)字符匹配符
” […] ” 匹配方括号中包含的字符集中的任意一个字符。


5. 分组组合和反向引用符

分组组合是将表达式中某部分内容组合起来的符号,反向引用符则是用于匹配分组组合捕获到的内容的标示符。
(1) 分组组合
“(parttern)”将pattern部分组合成一个可统一操作的组合项和子匹配,每个捕获的子匹配项


4. 正则表达式(4)相关推荐

  1. 通过正则表达式校验手机号码,拿走即用!

    校验手机号码 2021/01/06更新,电信新增了191号段 1. 单纯校验长度 2.正则表达式校验数字 3.正则表达式校验是否是大陆号码 4.正则表达式校验是否是香港号码 //校验长度private ...

  2. Linux shell 学习笔记(15)— shell 正则表达式

    1. 定义 BRE 模式 1.1 纯文本 第一条原则就是:正则表达式模式都区分大小写.这意味着它们只会匹配大小写也相符的模式. $ echo "This is a test" | ...

  3. re2正则表达式匹配引擎的c接口版本cre2的中文使用手册

    前言 re2 官方地址: https://github.com/google/re2 cre2 官方地址: https://github.com/marcomaggi/cre2 1 基本类型定义 不透 ...

  4. 正则表达式(括号)、[中括号]、{大括号}的区别小结

    正则表达式(括号).[中括号].{大括号}的区别小结 </h1><div class="clear"></div><div class=& ...

  5. Python中正则表达式用法 重点格式以这个为准_首看_各种问题

    20210811 https://www.jb51.net/article/101258.htm 一.惰性模式的概念: 此模式和贪婪模式恰好相反,它尽可能少的匹配字符以满足正则表达式即可,例如: va ...

  6. 正则语法完全正则表达式手册_语法格式重点

    20211202 https://blog.csdn.net/lc11535/article/details/103266263 该表达式打开re.U(re.UNICODE)标志. python –& ...

  7. 正则表达式 - 语法

    正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串.将匹配的子串替换或者从某个串中取出符合某个条件的子串等. 例如: r ...

  8. 正则表达式中的\.表示什么意思

    \ 这是引用符,用来将这里列出的这些元字符当作普通的字符来进行匹配.例如正则表达式\$被用来匹配美元符号,而不是行尾,类似的,正则表达式\.用来匹配点字符,而不是任何字符的通配符.

  9. ?:在正则表达式中什么意思

    "?:"非获取匹配,匹配冒号后的内容但不获取匹配结果,不进行存储供以后使用. 单独的"?":匹配前面的子表达式零次或一次. 当"?"紧跟在任 ...

  10. 关于正则表达式 \1 \2之类的问题

    我们创建一个正则表达式 var RegExp = /^(123)(456)\2\1$/; 这个正则表达式匹配到的字符串就是 123456456123 创建另外第二正则表达式 var RegExp1 = ...

最新文章

  1. Centos6.5 yum 安装MySQL5.5 并修改数据库路径
  2. 4.0 《数据库系统概论》数据库安全性详解---(存取控制、DACMAC、视图机制、审计Audit....)
  3. 3.Prometheus + Grafana实现可视化、告警
  4. Java Jackson源码研究 - how is class member attribute information is parsed by Serializer
  5. LeetCode 783二叉搜索树节点最小距离-简单
  6. PLSQL登录报错ORA-12154
  7. alm系统的使用流程_支持MBSE的企业信息管理系统发展与启示
  8. 两个构件的重合点_GTJ2018软件中如何合并两个工程?
  9. 面试官系统精讲Java源码及大厂真题 - 26 惊叹面试官:由浅入深手写队列
  10. jQuery-处理元素内容、表单元素
  11. python文件转换成jar包_Python一键转Jar包,Java调用Python新姿势!
  12. 如何借助大数据进行社交媒体营销
  13. linux获取主板温度电压_主板供电
  14. python车牌识别_Python-车牌识别
  15. 我的时间管理——任务表
  16. CSS3参考手册(所有属性)
  17. dm9000数据速率_STM32网络通信之DM9000A电路设计
  18. 六 Python 字典与集合
  19. 爆款养成思路,教你利用砍价做出刷屏活动!
  20. 三种方法查看电脑IP地址是否被占用

热门文章

  1. Spring Framework 4.0相关计划公布---包括对于Java SE 8 和Groovy2的支持
  2. GGally与pairs相关关系图_史上最全(二)
  3. 独家分享--48页PPT解密数据可视化!
  4. apollo-配置管理中心-安装
  5. 数据之路 - 数据可视化 - PowerBI工具
  6. elasticsearch pinyin 拼音分词器
  7. openstack: No valid host was found. There are not enough hosts available
  8. [学习笔记] [数据分析] 01.Python入门
  9. codeforces 735D Taxes(数论)
  10. 描绘质量属性的六个常见属性场景。