正则&highlight高亮实现(干货)
写完正则表达式以后在浏览器上检测实在是不方便,于是就写了一个JS正则小工具,大大地提高了学习效率。学习之余用正则实现了一个highlight高亮demo,欢迎交流。

什么是正则表达式?
简单的说:正则表达式(Regular Expression)是一种处理字符串匹配的语言;
正则表达式描述了一种字符串匹配的模式,可以用来检查一个字符串是否含有某种子串,对匹配到的子串进行“取出”或“替换”操作。
正则表达式的应用
正则表达式在实际的开发过程中非常实用,能够快速解决一些复杂的字符串处理问题,下面我对正则表达式的应用做一些简单分类:
第一种:数据验证
比如,你要验证一个字符串是否是正确的EMail,Telphone,Ip等等,那么采用正则表达式就好非常方便。
第二种:内容查找
比如,你要抓取一个网页的图片,那么你肯定要找到<img>标签,这时候用正则表达式就可以精准的匹配到。
第三种:内容替换
比如,你要把手机号码中间四位隐藏掉变成这种模式,123****4567,那么采用正则表达式也会非常方便。
正则表达式有哪些内容
1、正则表达式的几个重要的概念
- 子表达式:在正则表达式中,如果使用"()"括起来的内容,称之为“子表达式”
- 捕获:子表达式匹配到的结果会被系统放在缓冲区中,这个过程,我们称之为“捕获”
- 反向引用:我们使用"\n",其中n是数字,表示引用之前某个缓冲区之间的内容,我们称之为“反向引用”
2、数量限定符
| x+ |
|
| x* |
|
| x? |
|
| x{n} |
|
| x{n,} |
|
| x{n,m} |
|
3、字符限定符
| \d |
|
| \D |
|
| \w |
|
| \W |
|
| \s |
|
| \S |
|
| . |
|
此外还有以下几种:
范围字符: |
|
任意字符: |
|
非在内的字符: |
|
4、 定位符
| ^ |
|
| $ |
|
| \b |
|
| \B |
|
5、转义符
| \ |
|
6、选择匹配符
| | |
|
7、特殊用法
| ?= |
|
| ?! |
|
| ?: |
|
正则表达式在Javascript下的使用方法
在Javascript下使用正则表达式,有两种方法:
第一种方法:使用RegExp类
提供的方法有:(正则表达式在前面)
| test(str) |
|
| exec |
|
第二种方法是:使用String类
提供的方法有:(正则表达式在后面)
| search |
|
| match |
|
| replace |
|
| split |
|
总结
正则表达式就是我们实现某个功能的一个工具,这个工具:
1、功能强大
正则表达式中各种限定符的不同组合会实现不同的功能,有时实现一个复杂的功能需要编写很长的正则表达式,如何能精准匹配,
这就要考验一个程序员的能力了。
2、简洁方便
平常我们在进行字符串内容查找,只能进行某个特定字符串的查找,但是正则表达式可以帮助我们进行模糊查找,更快更方便,
仅仅需要一个正则表达式串。
3、各种语言基本上都支持
目前如JAVA、PHP、Javascript、C#、C++等主流语言都支持正则表达式。
4、学习很简单,应用很高深
学习正则表达式很快也很简单,但是如何在实际开发中编写出高效地,精准地正则表达式,还是需要长时间的尝试和积累。
正则&highlight高亮实现(干货)的更多相关文章
- highlight高亮
玩转正则之highlight高亮 2013-10-07 05:16 by 靖鸣君, 584 阅读, 3 评论, 收藏, 编辑 程序员在编写代码的时候少不了和字符串以及“查询”打交道,两者的交集中有一个 ...
- 玩转正则之highlight高亮
程序员在编写代码的时候少不了和字符串以及“查询”打交道,两者的交集中有一个叫做正则表达式的的东西,这家伙用好了可以提高编程效率,用不好的话...你可以先去好好学一学. 关于正则的使用,举个简单的例子: ...
- highlight高亮风格
highlight代码高亮的style有很多个,今天闲着没事,突然想看看各个style的效果.列在这里,以后想用的时候看看. ------------------------------------- ...
- js 正则练习之语法高亮
原文:js 正则练习之语法高亮 学了几天正则,差不多该总结整理写成果了,之前就想写语法高亮匹配来着,不过水平不够,看着例子都不理解.今天就分析下 次碳酸钴 和 Barret Lee 语法高亮实现. 先 ...
- 如何使用 highlight.js 高亮代码
highlight 是一款简单易用的 web 代码高亮插件,可以自动检测编程语言并高亮,兼容各种框架,可以说是十分强大了.下面就简单介绍一下如何使用这款插件. 两种使用方式: 1. 手动选择主题,官网 ...
- elasticsearch高亮之highlight原理
一.highlight简介 highlight是提升用户体验的重要手段,搜索引擎通过高亮突出命中关键字等方式,方便用户通过关键字周围的信息快速的确认是否是自己希望的结果: highlight功能通常包 ...
- 高亮代码 SyntaxHighlighter
SyntaxHighlighter: http://alexgorbatchev.com/SyntaxHighlighter/download/ demo <!DOCTYPE html PUBL ...
- WordPress代码高亮插件SyntaxHighlighter终极使用详解
子曰: 工欲善其事,必先利其器.作为码农一枚,再加上站长这个已经不再光鲜的称呼,岂能没有一款经济实用.操作简单.而且功能必须强大.样式也必须好看的Wordpress代码高亮插件?!作为一个视代码如生命 ...
- 实战JS正则表达式
-正则表达式是一种文本模式的匹配工具. -文章导读: --1.正则对象的属性和方法 --2.字符串对象的方法 --3.使用正则表达式: ---3.1 给字符串加上千分符 ---3.2 字符串中出现次数 ...
随机推荐
- 在ASP.NET Core 2.0 web项目中使用EntityFrameworkCore
一.安装EFCode包 EFCore需要根据不同的数据库选择不同的数据库提供程序database provider,各数据库的包地址:https://docs.microsoft.com/zh-cn/ ...
- iOS 多线程之GCD的简单使用
在iOS开发中,遇到耗时操作,我们经常用到多线程技术.Grand Central Dispatch (GCD)是Apple开发的一个多核编程的解决方法,只需定义想要执行的任务,然后添加到适当的调度队列 ...
- go time类操作
fmt.Println(time.Now().Format("2006-01-02 15:04:05")) # 这是个奇葩,必须是这个时间点, 据说是go诞生之日, 记忆方法:6- ...
- 鸟哥的 Linux 私房菜Shell Scripts篇(一)
参考: http://linux.vbird.org/linux_basic/0340bashshell-scripts.php#script_be http://www.runoob.com/lin ...
- apache 80端口占用问题
今天安装mongodb后发现apache无法启动 命令行 services.msc 打开服务 在服务里启动Apache2a服务,报错误码1 网上查有很多情况都报的1 可以通过命令行下 执行apach ...
- 【转】handbrake使用教程
原文地址http://tieba.baidu.com/p/2399590151?pn=1 现在的很多压制教程基本都是使用megui或者mediacoder的,这两个软件使 ...
- 死磕nginx系列--nginx 目录
死磕nginx系列--nginx入门 死磕nginx系列--nginx配置文件 死磕nginx系统-nginx日志配置 死磕nginx系列--nginx服务器做web服务器 死磕nginx系列--使用 ...
- remove-duplicates-from-sorted-list (删除)
题意略: 思路:先造一个点它与所有点的值都不同,那么只要后面两个点的值相同就开始判断后面是不是也相同,最后将相同的拆下来就可以了. #include<iostream> #include& ...
- php 非对称加密解密类
<?phpnamespace app\Parentclient\model;header("Content-Type: text/html;charset=utf-8");/ ...
- python3 练习题(多级菜单)
'''多级菜单需求:1.现有省/市/县3级结构,要求程序启动后,允许用户可依次选择进入各子菜单2.可在任意一级菜单返回上一级3.可以在任意一级菜单退出程序所需新知识点: 列表/字典'''menu = ...