㈠预定义类

 

 示例:匹配一个ab+数字+任意字符的字符串:ab\d.

 

㈡边界

正则表达式常用的边界匹配字符

 

⑴示例1:第一个是没写单词边界

            第二个是加上字符边界的效果

            第三个是为this的is替换成0,前面没有单词边界,后面有边界的示例。

 

 

⑵示例2:常用边界字符“^”与“$”基本含义的举例

注意观察两者的书写位置。

 

⑶示例3:边界字符“^”与“$”和修饰符“m”的示例

 

㈢量词

 示例:

 

㈣js正则贪婪模式

⑴贪婪模式:让正则表达式尽可能多的匹配,直到匹配失败

⑵示例:

 

㈤js正则非贪婪模式

⑴非贪婪模式:让正则表达式尽可能少的匹配,也就是说一旦成功匹配不再继续尝试

⑵如何让正则表达式使用非贪婪模式而不是默认的贪婪模式?

做法很简单,在量词后加上“?”即可。

⑶示例:

 

㈥分组

⑴使用()可以达到分组的功能,使量词作用于分组。 如: (Byron){3}

    示例:这是两个比较的例子,第二个使用了分组

 

⑵或

使用“|”可以达到或的效果

示例:

 

⑶反向引用

示例1:

 

示例2:分组捕获月日年的综合示例

⑷ 忽略分组

不希望捕获某些分组,只需要在分组内加上“?:”即可

示例:(?:Byron).(ok)

㈦前瞻

⑴正则表达式从文本头部向尾部开始解析,文本尾部方向,称为“前”。

⑵前瞻就是在正则表达式匹配到规则的时候,向前检查是否符合判断,后顾/后瞻方向相反。

⑶JavaScript不支持后顾。

⑷符合和不符合特定断言称为肯定/正向匹配和否定/负向匹配。

⑸前瞻语法:

 

⑹示例:

JavaScript 正则表达式——预定义类,边界,量词,贪婪模式,非贪婪模式,分组,前瞻的更多相关文章

  1. python正则表达式贪婪与非贪婪模式

    之前做程序的时候看到过正则表达式的贪婪与非贪婪模式,今天用的时候就想不起来了,现在这里总结一下,以备自己以后用到注意. 1.什么是正则表达式的贪婪与非贪婪匹配 如:String str="a ...

  2. python基础:re模块匹配时贪婪和非贪婪模式

    python贪婪和非贪婪 正则表达式通常用于在文本中查找匹配的字符串.Python里数量词默认是贪婪的(在少数语言里也可能是默认非贪婪),总是尝试匹配尽可能多的字符:非贪婪则相反,总是尝试匹配尽可能少 ...

  3. python中贪婪与非贪婪

    Python里数量词默认是贪婪的(在少数语言里也可能是默认非贪婪),总是尝试匹配尽可能多的字符: 非贪婪则相反,总是尝试匹配尽可能少的字符. 在"*","?", ...

  4. 正则表达式 整理(\w \s \d 点 贪婪匹配 非贪婪匹配 * + ? {} | [] ^ $ \b 单词边界 分组、re.findall()、re.split()、re.search()、re.match()、re.compile()、re.sub())

    re.findall  匹配到正则表达式的字符,匹配到的每个字符存入一个列表,返回一个匹配到的所有字符列表 一. 匹配单个字符 import re # \w 匹配所有字母.数字.下划线 re.find ...

  5. python 贪婪和非贪婪模式

    这样的正则表达式: r'\*(.+)\*'  如果想要匹配*something*这样的一个串按道理说是没问题的 但是如果文本是*this* is *something* 那么我们的正则表达式就会采取贪 ...

  6. js正则中的贪婪和非贪婪模式问题总结

    var b="abeeee:eeeee:eeeeeab"; console.log(b.match(/e+\:e+/g));//["eeee:eeeee"]贪婪 ...

  7. Python正则的贪婪和非贪婪示例

    贪婪匹配 import re info = """ saas12 [STREAM] codec_type=audio111 [/STREAM]-- [STREAM] co ...

  8. python正则匹配次数,贪婪和非贪婪

    贪婪模式  {m,n}表示匹配子串的次数>=m and <=n,再此分为内匹配次数尽可能的多 贪婪模式  {,n}表示 >=0 and <=n 贪婪模式  {m,} 表示> ...

  9. python正则中的贪婪与非贪婪

    当重复一个正则表达式时,如用 a*,操作结果是尽可能多地匹配模式.当你试着匹配一对对称的定界符,如 HTML 标志中的尖括号.匹配单个 HTML 标志的模式不能正常工作,因为 .* 的本质是“贪婪”的 ...

随机推荐

  1. 建立EF访问数据库架构时,出现One or more validation errors were detected during model generation

    原因是因为我在写实体类的时候没有为实体类中的属性声明一个主键,即用[key]特性标注在属性上,这样DbContext才能为我们在数据库上找到对应的主键 using System.ComponentMo ...

  2. 通道的分离与合并,ROI,

    通道的分离与合并 class Program { static void Main(String[] args) { Mat img = CvInvoke.Imread(@"C:\Users ...

  3. SQL注入之手工注入

    手工注入 用的是墨者学院的靶场:传送门 涉及以下数据库: MySQL.Access.SqlServer(MSSQL).SQLite.MongoDB.Db2(IBM).PostgreSQL.Sybase ...

  4. jdbc简单使用

    1.代码 import java.sql.*; public class DBUtil { public static void main(String[] args) throws ClassNot ...

  5. Test:河北金力集团企业网集成

    三.网站建设部分(40分) 河北金力集团公文流转系统 1.项目需求: 河北金力集团是我省机械加工的龙头企业,主要从事矿山机械制造及各种机械零部件加工.企业有3个厂区,主厂区位于省高新技术开发区,3个分 ...

  6. Momentum Contrast for Unsupervised Visual Representation Learning

    Momentum Contrast for Unsupervised Visual Representation Learning 一.Methods Previously Proposed 1. E ...

  7. MySQL存储引擎知多少

    MySQL是我们经常使用的数据库处理系统(DBMS),不知小伙伴们有没有注意过其中的“存储引擎”(storage_engine)呢?有时候面试题中也会问道MySQL几种常用的存储引擎的区别.这次就简短 ...

  8. JavaScript冒泡排序法实现排序操作

    var arr = [10,8,6,9,1,7,1,13,5,1,9]; //冒泡排序 function bubbleSort(tmpArr){ for(var i = tmpArr.length-1 ...

  9. java知识点复习(1):

    1.java整形变量078:在java数字里数字表达式前面加上0表示8进制,因为8进制里表示数字只有0-7,所以这里的表达式有错误.相对而言,077就是合法的,转换成10进制就是63(7*8+7=63 ...

  10. Altium Designer 编译原理图出现has no driving source警告解决办法

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明. 作者:struct_mooc 博客地址:https://www.cnblogs.com/stru ...