• JavaScript学习笔记-正则表达式(语法篇)


    正则表达式的模式规则是由一个字符系列组成的,包括所有字母和数字在内;
    大多数的字符(所有字母和数字)都是按字符的直接量来描述带匹配的字符;
    一些具有特殊语义的字符按照其特殊语义来进行匹配,有些字符需要通过()进行转义;
    字符 匹配
    字母,数字 自身
    o NUL字符u0000
    制表符u0009
    换行符u000A
    v 垂直制表符u000B
    f 换页符u000C
    回车符u000D
    Xnn xnn 由十六进制数nn指定的拉丁字符,如x0A等价于
    uxxxx 由十六进制数xxxx指定的Unicode字符,如u000A等价于
    cX 控制字符^X,如cJ等价于
    正则表达式中具有特殊含义的标点符号:(某些符号只有在正则表达式的某些上下文中才具有某种特殊含义)
    ^ $ . * + ? = ! : | / ( ) [ ] { } 还有连字符'-'
    若要将以上特殊符号按直接量进行匹配,则必须使用前缀来转义,其它符号则无需转义直接按字面量匹配;

     
    正则表达式的重复字符语法:
     
    以上是贪婪式匹配(尽可能多的匹配),若要进行非贪婪匹配(若可以则尽可能少的匹配)只需在后面加个'?',如:??,+?,*?,{1,5}?,{1,}?,在它们后面加'?'表示若可以则取下限值,不可以的情况如/a+?b/匹配aaaab时结果是aaaab而不是ab,因为正则表达式总是会从第一个字符开始匹配的,所以他无法跳过前面的aaa
    选择项如/ab|cd|abcd/匹配ab或cd或abcd,尝试匹配是从左到右,直到发现匹配项,就忽略其他选项;
    圆括号的作用1:把单独的项组合成子表达式,如/(ab|cd)+|ef/,可以匹配ef,也可以匹配ab或cd的多次重复
    圆括号的作用2:在完整的模式中定义子模式,当成功匹配完整模式时,可以从目标中抽出和子模式相匹配的部分,如/[a-z]+(d+)/,匹配一个或多个小写字母后面跟一位或多位数字,匹配成功则抽取数字部分;
    圆括号的作用3:允许在同一个表达式的后部引用前面的子表达式所匹配的字符串(引用:通过在后面加一位或多位数字来指定第几个左括号),如/([Jj]ava([Ss]crip)?) siss(funw*)/,2表示引用与第三个左括号内的子表达式([Ss]crip)相匹配的字符串;/(['"])[^'"]*1/表示匹配位于单引号对或双引号对之间的0个或多个字符;
    正则表达式中不允许单引号和双引号之间的相互嵌套,如/(['"])[^1]*1/这是错误的,中间的1被嵌套了
     
     
    指定匹配位置:锚
     
    如:
    /Java/以边界来匹配单词Java,
    匹配单词JavaScript可以用/^JavaScript$/,
    /B[Ss]cript/与JavaScript和postscript匹配,不匹配script和Scripter,
    /[Jj]ava ([Ss]cript)?(?=:)/只匹配后面带冒号的,匹配JavaScript:The中的JavaScript,不匹配JavaScript The,
    /Java(?!Script)([A-Z]w*)/可以匹配Java后跟一个大写字母和任意多个ASC2字符,但Java后面不能跟Script
     
    修饰符:用以说明高级匹配模式的规则,修饰符放在正则表达式/../之后,可以任意组合,如/java/ig表示匹配不区分大小写且在全文中匹配所有
  • 相关阅读:
    C# 使用SqlBulkCopy类批量复制大数据 快速导入Excel大量数据
    Git的安装与使用
    未能加载文件或程序集“Microsoft.VisualStudio.Web.PageInspector.Loader, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”或它的某一个依赖项。
    Android SDK Manager不能显示所有包的解决办法
    editor多功能文本框在有些计算机上不能正常加载,解决方法,本人用的是把js调用方法放到<body></body>后面)
    MVC URL参数传递+变为空格解决方法
    SQL 查询不重复数据
    Java基本数据类型取值范围
    统计数组中的逆数对个数
    Docker 安装 ElasticSearch
  • 原文地址:https://www.cnblogs.com/susufufu/p/5705791.html
Copyright © 2020-2023  润新知