JavaScript正则表达式(一)—— 开始及资源
来源:互联网 发布:通过ip添加网络打印机 编辑:程序博客网 时间:2024/06/06 03:06
开始
正则表达式是神秘而有趣的,一起来看看吧~~
什么是正则表达式?
A regular expression, regex or regexp(sometimes called a rational expression)is, in theoretical computer science and formal language theory, a sequence of characters that define a search pattern. Usually this pattern is then used by string searching algorithms for “find” or “find and replace” operations on strings. ——WIKIPEDIA
一切都是模式!!!
本质上,正则表达式(简称“正则”)是根据特定规则实现的适用的模式,用于匹配指定范围的文本。
可以看到这里主要包括:规则、模式、范围、文本
规则:也就是正则表达式的语法,包括原义文本字符,修饰符,和元字符。其中修饰符可分为i
,g
,m
三种;元字符又可以分为字符类,范围类,预定义类,量词,分组等等,还有贪婪,非贪婪,正向前瞻,负向前瞻等特殊用法。
模式:模式可以理解为是最终用于匹配文本的一组规则集合,也可以说是一种适用的通用规律。必须提及的是,模式是对最终实现目的的一种描述,其定义方式和复杂程度,和目的紧密相关。因此在编写前,需要明确最终的目的,是用于检索?提取数据?还是用于校验?
范围:这里的范围,指的是需要进行处理的文本数据可能包含的场景。因为针对不同数据,不同场景得到的模式不尽相同,可能对于数据集A,正则表达式R可得到正确结果,但是在添加一条新类型数据后,R定义的规则便不适用了。因此在正则表达式的世界中,不存在最好的,只有最适用的,而且每个人对数据和规则的理解也千差万别,所以无需追求适配所有情况的正则,那无异于画蛇添足。
文本:正则表达式的根本就是匹配文本。在此基础上,进行校验,和相关操作,如JavaScript中的String.search()
和String.replace()
函数便是分别实现了检索和替换的操作。
正则适用场景有哪些?
一切与文本有关的操作。
当前主流的编程语言几乎都实现了对正则的支持。但可能由于语言自身的使用范围,导致对正则的实现存在细微的差异,但中心思想和基本语法却是相一致的。
因为正则的出现便是为了在Unix系统下方便操作文本,因此在各系统的终端或命令行中都可以使用,只是需要了解系统对正则的支持方式。
支持正则的IDE中,有助于更快定位文件或代码片。
注意:当前正则语法存在两种版本,POSIX标准语法和Perl语法标准。在使用时需要了解当前使用规则的版本。
学习正则能收获什么?
- 当然,首先就是利用正则处理字符串的技术
- 个人认为,其内涵的思想和方法也是值得深入体会的
- 对规则的提炼,从特殊到一般的模式
- 从局部到整体的分析策略
- 知己知彼百战不殆
- 合理分解问题的方法
- 没有最好的,只有最适合的
- 逼格不是装出来的,是练出来的
推荐资源
教程:
- 慕课网——JavaScript正则表达式视频教程
网站:
- regular-expressions.info
- 正则的可视化展示
博客:
- 为什么使用正则test( )第一次是 true,第二次是false?
书籍:
- JavaScript Regular Expressions:英文书籍,针对JavaScript正则
- 精通正则表达式(第三版)简体中文:涉及语言较多,推荐阅读前6章内容,后续章节按需阅读。
- JavaScript正则表达式(一)—— 开始及资源
- javascript(一)-正则表达式
- Javascript—正则表达式
- Javascript—正则表达式
- javascript正则表达式<一>
- 学习 Javascript 正则表达式(一)————使用正则表达式对String对象解析
- JavaScript正则表达式(一)简介
- javascript正则表达式之小结(一)
- javascript之正则表达式(一)
- Javascript正则表达式学习(一)
- 详解JavaScript正则表达式(一)
- JavaScript的正则表达式(一)
- 转载——javascript中的正则表达式及使用方法
- 正则表达式(五)——javascript
- javascript——正则表达式
- 【JavaScript】——正则表达式
- 【JavaScript】——正则表达式
- JavaScript——正则表达式
- 欢迎使用CSDN-markdown编辑器
- TCP/IP、Http、Socket的区别
- CoordinatorLayout的使用如此简单
- hide handkerchief HDU - 2104
- OSGI:Spring DM
- JavaScript正则表达式(一)—— 开始及资源
- PAT 乙级 1042. 字符统计(20)
- Android仿百度外卖APP首页状态/标题栏效果(沉浸式状态栏)
- 论中国现代化与社会结构
- Java中switch case 语句总结
- python标准库中的argparse使用中的一点注意事项
- 电话状态监听小结
- coreldraw x8 x6 installation安装注册 自学图文教程
- 还原AndroidManifest.xml明文的方法