-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
正则表达式入门 #14
Comments
转义字符正则表达式中,需要反斜杠转义的,一共有12个字符:^、.、[、$、(、)、|、*、+、?、{和\。需要特别注意的是,如果使用RegExp方法生成正则对象,转义需要使用两个斜杠,因为字符串内部会先转义一次。
使用正则表达式节正则表达式可以被用于RegExp的exec和test方法以及 String的match、replace、search和split方法。这些方法在JavaScript 手册中有详细的解释。 |
忘记了,就看看这篇文章 |
引言
1 匹配字符无非就是字符组、量词和分支结构的组合使用罢了。 1.1 模糊匹配横向模糊匹配(使用量词,一个正则可以匹配的字符串长度不固定) 纵向模糊匹配(使用字符组,具体到某一个字符可以有多种匹配可能) 1.2 字符组 [abc]
[a-zA-Z1-9] (- 连字符)
表示是一个除"a"、"b"、"c"之外的任意一个字符。字符组的第一位放^(脱字符),表示求反的概念。
1.3 量词
贪婪匹配与非贪婪匹配(惰性匹配)以上量词默认情况下尽可能匹配更多的字符,这被称为贪婪模式。
注意:
1.4 多选分支 | (默认惰性匹配)一个模式支持横向模糊匹配和纵向模糊匹配,而多选分支支持多个子模式任选其一。 1.5 案例分析1.5.1 匹配16进制颜色值要求匹配:
/^#(?:[1-9a-fA-F]{3}|[1-9a-fA-F]{6}$/ 1.5.2 匹配时间以24小时制为例。
let regex = /^(?:[01]?\d|2[0-3]):[0-5]?\d$/ 1.5.3 匹配id要求从
提取出id="container"。 2 位置匹配
也就是说字符之间的位置,可以写成多个。 把位置理解空字符,是对位置非常有效的理解方式。
如果要把"12345678 123456789"替换成"12,345,678 123,456,789" 我们可以把原题变成下列几种情况之一: 同时包含数字和小写字母
另一种解法
3 正则表达式括号的作用
4 正则表达式回溯法原理贪婪量词、 惰性量词、分支结构都有可能产生回溯。 简单总结就是,正因为有多种可能,所以要一个一个试。直到,要么到某一步时,整体匹配成功了;要么最后都试完后,发现整体匹配不成功。
既然有回溯的过程,那么匹配效率肯定低一些。 5 正则表达式的拆分
其中涉及到的操作符有:
上面操作符的优先级从上至下,由高到低。
6 正则表达式API
参考资料JS正则表达式完整教程(略长) 目前看过的最好的一个正则的教程,本篇也是对该教程的总结 |
The text was updated successfully, but these errors were encountered: